LINUX.ORG.RU

Сообщения bryak

 

kotlin акторы. Помогите собрать пример

Форум — Development
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

 , ,

bryak
()

Добавить coroutines в build.gradle

Форум — Development
> 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. Не могу понять, как это правильно сделать

 , , ,

bryak
()

future garage сборники где найти?

Форум — Talks

Есть какие-то сборники направления future garage?

 ,

bryak
()

Как бы слить всю музыку с youtube канала?

Форум — Talks

 ,

bryak
()

вывод информации с примеров в setContentView

Форум — Development

Т.к многие примеры не работают вне контекста андроид приложения, было принято решение разбирать примеры kotlin в контексте андроид приложения. Создал минимальное приложение в андроид студио с mainactivity, которое имеет код

package com.example.socialkotlin

import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.activity_main.*
import android.util.Log


// class SomeActivity : Activity(), AnkoLogger {
//     private fun someMethod() {
//         info("London is the capital of Great Britain")
//         debug(5) // .toString() method will be executed
//         warn(null) // "null" will be printed
//     }
// }




class MainActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    Log.d("TAG", "----------------------message")
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    setSupportActionBar(toolbar)

    fab.setOnClickListener {
      view -> Snackbar.make(
        view,
        "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null
      ).show()
    }
  }

  override fun onCreateOptionsMenu(menu: Menu): Boolean {
    // Inflate the menu; this adds items to the action bar if it is present.
    menuInflater.inflate(R.menu.menu_main, menu)
    return true
  }

  override fun onOptionsItemSelected(item: MenuItem): Boolean {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    return when (item.itemId) {
      R.id.action_settings -> true
      else -> super.onOptionsItemSelected(item)
    }
  }
}

я так понимаю, что информация выводится в

setContentView(R.layout.activity_main)

которая тянет информацию с

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!9992"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Как бы сделать так, чтобы можно было результат работы примеров отображать в setContentView?

 ,

bryak
()

autosuspend systemd

Форум — Desktop

Хочу, чтобы при старте системы при неактивности система уходила в standby

Делаю так:

cat /etc/systemd/sleep.conf

[Sleep]
AllowSuspend=yes
SuspendMode=disk

cat /etc/systemd/logind.conf

[Login]
IdleAction=suspend
IdleActionSec=1min

В итоге при неактивности в 1 минуту ничего не происходит

 , ,

bryak
()

Вопросы по kotlin

Форум — Development

Если умное приведение вам не нужно, то используйте запись с безопасным оператором ?.

val a: Int? = null
a?.toLong()

Функция будет вызвана только в том случае, если значение a отлично от null. Безопасные вызовы можно сцеплять.

Проверяем:

fun main(args: Array<String>) {
  // throw CustomException("Threw custom exception")
  val a: Int? = null
  print(a?.toString())
}

out:

null

 ,

bryak
()

ktlint как сделать force format?

Форум — Development
  1. какой у ktlint файл настроек? Он глобальный или локальный?
  2. как указать force format?

при чем здесь emacs?

Притом, что https://github.com/lassik/emacs-format-all-the-code не умеет в аргументы. И не получится прописать внутри него опцию -F

 , ,

bryak
()

java 1000 тредов. Съедает память

Форум — Development

Взял тестовый сорс из книги, немного его подрихтовал на запуск 1000 тредов. Запустил, меряю ps_mem -p pid и вижу, что потихонечку память процесса увеличивается. Это нормально или где-то тут протекает? :)

// Create a second thread.
class NewThread implements Runnable {
  Thread t;

  NewThread(String name) {
    // Create a new, second thread
    t = new Thread(this, name);
    System.out.println("Child thread: " + t);
  }

  // This is the entry point for the second thread.
  public void run() {
    try {
      // for (int i = 5; i > 0; i--) {
      for (int i = 5;; i--) {
        System.out.println(Thread.currentThread());
        System.out.println("Child Thread: " + i);
        Thread.sleep(500);
      }
    } catch (InterruptedException e) {
      System.out.println("Child interrupted.");
    }
    System.out.println("Exiting child thread.");
  }
}

class HelloWorld {
  public static void main(String[] args) {
    // NewThread nt = new NewThread(); // create a new thread
    // nt.t.start(); // Start the thread

    for(int x = 0; x <= 1000; x++) {
      System.out.println("aaaa");
      NewThread nt = new NewThread("some" + x); // create a new thread
      nt.t.start(); // Start the thread
    }

    try {
      for (int i = 5;; i--) {
        System.out.println("Main Thread: " + i);
        Thread.sleep(1000);
      }
    } catch (InterruptedException e) {
      System.out.println("Main thread interrupted.");
    }
    System.out.println("Main thread exiting.");
  }
}

 ,

bryak
()

Как меня кинули работодатели

Форум — Talks

Устроился на работу. У компании есть еще один кодер, который работает удаленно. Тот кто работал физически ушел в армию. Говорят: первый месяц 50% от ставки, чтобы типа разобраться с продуктом, потом в штатном режиме 100% ставки. Пожали руки. Работаем. В работе есть несколько задач ёмких, для решения которых нужно сделать определенный комплекс мер. Просто так они не закрываются.

Первый месяц выплачивают, второй месяц работаю выплачивают 50% от зарплаты(аванс). Наступает начало месяца - зарплаты нет. Спрашиваю - говорят будет 5 числа. 5 числа зарплаты нет :). Потом говорят, что моя эффективность неудовлетворительная, что «закрой таски все - мы выплатим зарплату». Коммиты с тем, что я делал - я предоставил. Все аргументы игнорят и говорят «закрой таски». Чтобы закрыть эти таски, нужно потратить 1-1.5 месяца. Вот такая история. Договора не было, официально не устроен. Теперь будем знать, что бывает и такое, лол.

Стандартная схема: нанимаем человека, первый месяц платим ему 20тыс. грн, второй месяц платим 20тыс. грн и шантажируем его, что пока он не закроет все таски - зарплаты не будет. Человек в панике за месяц закрывает таски(зарплату же хочется), ему платят деньги и говорят «прощай», а все мелкие таски будет закрывать кодер на удаленке(которому платят 15тыс. грн). Красота

bryak
()

как не отключать питание от звуковой карты?

Форум — Desktop

встроенная hd audio. После нескольких секунд неактивности отключает питание и ощущается звук фона и появляется звук от колёсика мыши. Как это убрать?

 

bryak
()

как переделать функцию, чтобы она загружала переменные?

Форум — Development

cat some.yml

## global definitions
global:
  debug: yes
  verbose: no
  debugging:
    detailed: no
    header: "debugging started"

## output
output:
   file: "yes"
function parse_yaml {
   local prefix=$2
   local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
   sed -ne "s|^\($s\):|\1|" \
        -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \
        -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p"  $1 |
   awk -F$fs '{
      indent = length($1)/2;
      vname[indent] = $2;
      for (i in vname) {if (i > indent) {delete vname[i]}}
      if (length($3) > 0) {
         vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
         printf("%s%s%s=\"%s\"\n", "'$prefix'",vn, $2, $3);
      }
   }'
}

parse_yaml sample.yml

out:

global_debug="yes"
global_verbose="no"
global_debugging_detailed="no"
global_debugging_header="debugging started"
output_file="yes"

А как бы сделать так, чтобы внутри скрипта инициализировались эти переменны?

 

bryak
()

как задать минимальную температуру, при которой должен запускаться fan?

Форум — Desktop

через nvidia-settings

 

bryak
()

тюнинг видеокарты nvidia

Форум — Desktop
Nvidia ()
{

    export __GL_SYNC_TO_VBLANK=1 &
    export __GL_YIELD="USLEEP" & # disable tiring
    set vblank_mode=1 &
    nvidia-settings --assign [gpu:0]/GPUPowerMizerMode=2 &
    nvidia-settings --assign [gpu:0]/SyncToVBlank=1 &
    nvidia-settings --assign [gpu:0]/FXAA=1 &

Что еще есть из полезного?

 

bryak
()

Зарплата 50% для IT

Форум — Talks

Украина. Начинается. Работодатели начинают вещать о том, чтобы обрезать штату зарплату на 50%. Если мы все прогнёмся под это, то на этой зарплате и останемся. Чтобы вы были в курсе. Думаю в РФ ситуация будет такой же.

bryak
()

Зарегистрировать апи в админке

Форум — Development

Есть апи, нужно зарегистрировать в админ панели. Как это сделать?

 ,

bryak
()

microsd ntfs раздел

Форум — Desktop

Отформатировал в windows microsd. Загружаюсь в linux

fdisk -l

Disk /dev/sdb: 238.3 GiB, 255835766784 bytes, 499679232 sectors
Disk model: File-Stor Gadget
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6e697373

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sdb1       1936269394 3772285809 1836016416 875.5G 4f QNX4.x 3rd part
/dev/sdb2       1917848077 2462285169  544437093 259.6G 73 unknown
/dev/sdb3       1818575915 2362751050  544175136 259.5G 2b unknown
/dev/sdb4       2844524554 2844579527      54974  26.9M 61 SpeedStor

монтироваться /dev/sdb не хочет

mount /dev/sdb /mnt/fiio/

Mar 31 02:13:37 debian-home ntfs-3g[6153]: Version 2017.3.23AR.3 integrated FUSE 28
Mar 31 02:13:37 debian-home ntfs-3g[6153]: Mounted /dev/sdb (Read-Write, label "", NTFS 3.1)
Mar 31 02:13:37 debian-home systemd[1]: mnt-fiio.mount: Unit is bound to inactive unit dev-disk-by\x2duuid-515FAEF100B4F279.device. Stopping, too.
Mar 31 02:13:37 debian-home ntfs-3g[6153]: Cmdline options: rw
Mar 31 02:13:37 debian-home ntfs-3g[6153]: Mount options: allow_other,nonempty,relatime,rw,fsname=/dev/sdb,blkdev,blksize=4096
Mar 31 02:13:37 debian-home ntfs-3g[6153]: Ownership and permissions disabled, configuration type 7
Mar 31 02:13:37 debian-home systemd[1]: Unmounting /mnt/fiio...
Mar 31 02:13:37 debian-home systemd[2860]: mnt-fiio.mount: Succeeded.
Mar 31 02:13:37 debian-home ntfs-3g[6153]: Unmounting /dev/sdb ()
Mar 31 02:13:37 debian-home systemd[1]: mnt-fiio.mount: Succeeded.
Mar 31 02:13:37 debian-home systemd[1]: Unmounted /mnt/fiio.

 ,

bryak
()

compton подтормаживает на nvidia

Форум — Desktop

есть такие настройки. mc при up/down тормозит как-то. Отключил compton - не тормозит

backend = "glx";
vsync = "opengl-swc";
sw-opti = false; # Ограничение количества отрисовок (--sw-opti)
shadow = false;
no-dnd-shadow = true;
no-dock-shadow = true;
fading = false;
no-fading-openclose = true;
paint-on-overlay = true;
# inactive-dim = 0.1; # Затемнение неактивных окон (--inactive-dim)

 ,

bryak
()

как взять результат значения bash команды

Форум — Admin

Мне нужно следующее:

  1. взять bklid /dev/sda
  2. найти строку с UUID диска в /etc/fstab
  3. заменить стандартные опции монтирования на
noatime,commit=600,barrier=0,errors=remount-ro 0       1

как это в asnsible выглядит?

 ,

bryak
()

kitty шрифт выглядит не так, как в st

Форум — Desktop
https://i.postimg.cc/fTQbGGxy/2020-03-28-000756-922783278.png

конфиг

# foreground #
background #242424
# foreground #dddddd
# background_opacity 1.0

font_family      Consolas
bold_font        Consolas
italic_font      Consolas
bold_italic_font Consolas
force_ltr no

font_size 11
adjust_line_height  0
adjust_column_width 0
cursor_blink_interval -1

 , , ,

bryak
()

RSS подписка на новые темы