mpv tips & trics
Кто какие фильтры\конфиги\плагины использует? Может кто-то юзает какие-то плагины, которые 60fps делают или что-то оригинальное
Кто какие фильтры\конфиги\плагины использует? Может кто-то юзает какие-то плагины, которые 60fps делают или что-то оригинальное
Скачал конфиг https://github.com/Argon-/mpv-config Или это эффект плацебо или как-то видео по-интересному воспроизводится. Помогите понять, что не так
https://material.io/develop/android/components/bottom-navigation/
А как правильно на вьюхи добавлять свои элементы?
Я запускаю emulator android
emulator -avd Pixel_2_API_R -netdelay none -netspeed full
Запущенный эмулятор хочет быть float(blink’ает) Запускаю xprop:
$xprop.sh
title: "Android Emulator - Pixel_2_API_R:5554"
$xprop.sh
title:
https://ibb.co/VWsWmgm сам эмулятор имеет титл Android Emulator - Pixel_2_API_R:5554
https://ibb.co/9TCTw7d панелька имеет титл title:(пусто)
в dwm добавить бы что-то типа
{ NULL, NULL, "Android Emulator-*", 0, 1, -1 },
возможно ли это?
И второе, как быть с панелькой, которая имеет title пусто?
И третье: может как-то можно выставить титл\виндовс класс\инстанс всему этому делу?
package com.thesimplycoder.bottomnavbar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import android.graphics.Color
import androidx.core.app.NotificationCompat
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bottomNav.setOnNavigationItemSelectedListener {
when (it.itemId) {
R.id.menu_home -> {
setContent("Home")
true
}
R.id.menu_notification -> {
setContent("Notification")
true
}
R.id.menu_search -> {
setContent("Search")
true
}
R.id.menu_profile -> {
setContent("Profile")
true
}
else -> false
}
}
// var badge = bottomNav.getOrCreateBadge(R.id.menu_home)
// badge.isVisible = true
// badge.number = 99
// bottomNav.getOrCreateBadge(R.id.menu_home).apply {
// backgroundColor = Color.RED
// badgeTextColor = Color.WHITE
// maxCharacterCount = 3
// number = 0
// isVisible = true
// }
// val name = getString(R.id.menu_home)
// val descriptionText = getString(R.string.channel_description)
// val importance = NotificationManager.IMPORTANCE_LOW
// val mChannel = NotificationChannel(id, name, importance).apply {
// description = descriptionText
// setShowBadge(false)
// }
// val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
// notificationManager.createNotificationChannel(mChannel)
val messageCount = 12
var notification = NotificationCompat.Builder(this@MainActivity, R.id.menu_home.toString())
.setContentTitle("New Messages")
.setContentText("You've received 3 new messages.")
// .setSmallIcon(R.drawable.ic_notify_status)
.setSmallIcon(R.mipmap.ic_launcher)
.setNumber(messageCount)
.build()
}
private fun setContent(content: String) {
setTitle(content)
tvLabel.text = content
}
}
Ничего не отображается
при(с офиц доки)
var badge = bottomNav.getOrCreateBadge(R.id.menu_home)
badge.isVisible = true
badge.number = 99
аплека падает. Что я делаю не так?
В общем мне нужно что?
var temp_str = ""
if(opsos.size == 4) {
temp_str = opsos[2]
} else {
val phone_size = 10
for(i in 0..phone_size-opsos[0].toInt()) {
temp_str += "#"
}
}
Очень неудобно, когда открываешь броузер и все табы, кроме текущего, являются suspend, перехожу на любой из них и они начинают рефрешиться. Как запретить firefox’у это делать?
Хочу спросить общие вопросы, чтобы понимать общие моменты. Я делаю приложение, у которого будет авторизация по номеру телефона и верификация. Бекенд будет на djangorest. Я думал сделать так:
Так же в приложении будут push messages. Они реально нужны. Отсюда возникают вполне закономерные вопросы:
Верификация:
Прайс firebase: 10к юзеров бесплатно в месяц, за авторизацию +10к юзеров придется заплатить $600 т.е $0.06 верификация
Прайс twilio: $0.0075 за каждую смс
По идее twilio дешевле, чем firebase. Но тут есть несколько вопросов по всем этим платформам
возможно ли в firebase сделать так, чтобы я только делал верификацию юзеров при реге, а потом я им выдавал токен и авторизовывал их у себя на бекенде?
если я использую twilio для верификации, смогу ли я использовать push message в firebase? Или юзеры должны обязательно авторизоваться в firebase, чтобы принимать push message?
Можно ли как-то организовать push message без участия firebase? Т.е, допустим, аплекейшен подписывается на на какую-то ветку rabbitmq, слушает ее и как только туда прилетает message «адресованный» ей - она этот message показывает как push message
У меня есть измененный конфиг docker’a. При обновлении пакетов, конфиг докера меняется на дефолтный. Думаю, может есть какая-то система хуков в дебиане, чтобы если обновляется какой-то пакет, внутри хука выполнить команду(sed), чтобы зареплейсить строку конфига
т.е если Украина - +3, если Россия - +7 и тд
в книге написано:
Если вы привыкли использовать одно имя, то добавьте this
class WildCat(name: String, weight: Int, breed: String){
val this.name = name
var this.weight = weight
val this.breed = breed
}
Делаю:
package com.example.socialkotlin
import android.graphics.Color.*
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import java.util.concurrent.Executors
import kotlin.system.*
import kotlinx.android.synthetic.main.content_main.*
// import kotlinx.coroutines.*
import kotlinx.coroutines.delay
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
// import kotlinx.coroutines.CommonPool
import kotlinx.coroutines.async
import kotlinx.coroutines.AbstractCoroutine
import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope
import java.util.concurrent.*
import kotlinx.coroutines.channels.*
import kotlinx.coroutines.channels.actor
class WildCat(name: String, weight: Int, breed: String){
val this.name = name
var this.weight = weight
val this.breed = breed
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
Log.d("TAG", "----------------------------")
val test = WildCat("zzzz", 12, "zzzz1")
Log.d("TAG", test.name.toString())
super.onCreate(savedInstanceState)
setContentView(R.layout.content_main)
text_id.setText("zzz2")
// text_id.setText(getWarmth(c).toString())
}
}
out:
> Task :app:compileDebugKotlin FAILED
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (26, 9): Type expected
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (27, 9): Type expected
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (28, 9): Type expected
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (26, 21): Extension property cannot be initialized because it has no backing field
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (27, 23): Extension property cannot be initialized because it has no backing field
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (28, 22): Extension property cannot be initialized because it has no backing field
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (37, 27): Unresolved reference: name
class Cat(val name: String, weight_param: Int, breed_param: String) {
var activities = arrayOf("Play")
val breed = breed_param.toUpperCase()
var weight = weight_param
set(value) {
Log.d("TAG", "in set()")
if (value > 0) {
Log.d("TAG", "yes")
field = value
}
else {
Log.d("TAG", "no")
field = 0
}
}
val weightInGramms: Int
get() = weight * 1000
fun sleep() {
println(if (weight < 3) "сопит!" else "храпит!")
}
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
Log.d("TAG", "----------------------------")
val cat = Cat("Васька", -3, "Дворовая")
Log.d("TAG", cat.weightInGramms.toString()) // возвращает 3000
super.onCreate(savedInstanceState)
setContentView(R.layout.content_main)
text_id.setText("zzz2")
// text_id.setText(getWarmth(c).toString())
}
}
Никому не попадался таймер такой специфики: я нажимаю старт - тикает время. Я нажимаю стоп. Далее я нажимаю на кнопку еще раз - тикает в обратном порядке:
старт --> 1, 2, 3, 4, 5
стоп --> 5
старт --> 5, 4, 3, 2, 1
Есть ли для дебиана какие-то скрипты\репы, которые позволяют накладывать какие-то патчи, по типу geek-sources(не знаю живо ли это сейчас)?
Есть сорсы ядра /usr/src/linux-source-4.19, я накладываю патч и он накладывается с ошибками. Я их исправляю. После того, как я пофиксил ошибки, я хочу сделать патч, который я смогу без проблем наложить в следующий раз. Как это правильно сделать. Итак, есть набор действий:
cd /usr/src
1. rm -rf linux-source-4.19
2. tar xJpf linux-source-4.19.tar.xz
3. cp -prf cp -prf /boot/config-"$(uname -r)" .config
cd linux-source-4.19
4. patch -p1 < kernel_gcc_patch/usr/src/kernel_gcc_patch/enable_additional_cpu_optimizations_for_gcc_v9.1+_kernel_v4.13+.patch
5. фиксим ошибки после наложения ядра
6. набор действий, чтобы сделать патч(вопрос топика)
package com.example.socialkotlin
import android.graphics.Color.*
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import java.util.concurrent.Executors
import kotlin.system.*
import kotlinx.android.synthetic.main.content_main.*
// import kotlinx.coroutines.*
import kotlinx.coroutines.delay
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
// import kotlinx.coroutines.CommonPool
import kotlinx.coroutines.async
import kotlinx.coroutines.AbstractCoroutine
import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope
import java.util.concurrent.*
import kotlinx.coroutines.channels.*
import kotlinx.coroutines.channels.actor
val threadPoolExecutor = Executors.newCachedThreadPool()
// val threadPoolExecutor = Executors.newFixedThreadPool(5)
val threadPool = threadPoolExecutor.asCoroutineDispatcher()
sealed class CounterMsg {
object IncCounter : CounterMsg() // one-way message to increment counter
class GetCounter(val response: SendChannel<Int>) : CounterMsg() // a request with channel for reply.
}
fun counterActor() = GlobalScope.actor<CounterMsg>(threadPool) { //(1)
var counter = 0 //(9) actor state, not shared
for (msg in channel) { // handle incoming messages
when (msg) {
is CounterMsg.IncCounter -> counter++ //(4)
is CounterMsg.GetCounter -> msg.response.send(counter) //(3)
}
}
}
suspend fun getCurrentCount(counter: ActorJob<CounterMsg>): Int { //(8)
val response = Channel<Int>() //(2)
counter.send(CounterMsg.GetCounter(response))
val receive = response.receive()
println("Counter = $receive")
return receive
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
Log.d("TAG", "----------------------------")
// val counter = counterActor()
// GlobalScope.launch(threadPool) {
// //(5)
// while(getCurrentCount(counter) < 100){
// delay(100)
// Log.d("TAG", "sending IncCounter message")
// counter.send(CounterMsg.IncCounter) //(7)
// }
// }
// GlobalScope.launch(threadPool) {
// //(6)
// while (getCurrentCount(counter) < 100) {
// delay(200)
// }
// }.join()
// counter.close() // shutdown the actor
// GlobalScope.launch {
// val channel = basicActor()
// channel.send(Message.Increment(1))
// channel.send(Message.Increment(2))
// val deferred = CompletableDeferred<Int>()
// channel.send(Message.GetValue(deferred))
// Log.d("TAG", deferred.await().toString()) // prints "3"
// channel.close()
// }
GlobalScope.launch {
val counter = counterActor()
launch(threadPool) { //(5)
while(getCurrentCount(counter) < 100){
delay(100)
println("sending IncCounter message")
counter.send(CounterMsg.IncCounter) //(7)
}
}
launch(threadPool) { //(6)
while ( getCurrentCount(counter) < 100) {
delay(200)
}
}.join()
counter.close() // shutdown the actor
}
super.onCreate(savedInstanceState)
setContentView(R.layout.content_main)
text_id.setText("zzz2")
// text_id.setText(getWarmth(c).toString())
}
}
out:
> Task :app:compileDebugKotlin FAILED
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (45, 38): Unresolved reference: ActorJob
> Task :app:compileDebugKotlin FAILED
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (39, 5): Unresolved reference: GlobalScope
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (40, 7): Unresolved reference: delay
Нужно добавить coroutines в build.gradle. Не могу понять, как это правильно сделать
Есть какие-то сборники направления future garage?
| ← назад | следующие → |