Сообщения bryak
вывод информации с примеров в setContentView
Т.к многие примеры не работают вне контекста андроид приложения, было принято решение разбирать примеры 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?
autosuspend systemd
Хочу, чтобы при старте системы при неактивности система уходила в standby
Делаю так:
cat /etc/systemd/sleep.conf
[Sleep]
AllowSuspend=yes
SuspendMode=disk
cat /etc/systemd/logind.conf
[Login]
IdleAction=suspend
IdleActionSec=1min
В итоге при неактивности в 1 минуту ничего не происходит
Вопросы по kotlin
Если умное приведение вам не нужно, то используйте запись с безопасным оператором ?.
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
ktlint как сделать force format?
- какой у ktlint файл настроек? Он глобальный или локальный?
- как указать force format?
при чем здесь emacs?
Притом, что https://github.com/lassik/emacs-format-all-the-code не умеет в аргументы. И не получится прописать внутри него опцию -F
java 1000 тредов. Съедает память
Взял тестовый сорс из книги, немного его подрихтовал на запуск 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.");
}
}
Как меня кинули работодатели
Устроился на работу. У компании есть еще один кодер, который работает удаленно. Тот кто работал физически ушел в армию. Говорят: первый месяц 50% от ставки, чтобы типа разобраться с продуктом, потом в штатном режиме 100% ставки. Пожали руки. Работаем. В работе есть несколько задач ёмких, для решения которых нужно сделать определенный комплекс мер. Просто так они не закрываются.
Первый месяц выплачивают, второй месяц работаю выплачивают 50% от зарплаты(аванс). Наступает начало месяца - зарплаты нет. Спрашиваю - говорят будет 5 числа. 5 числа зарплаты нет :). Потом говорят, что моя эффективность неудовлетворительная, что «закрой таски все - мы выплатим зарплату». Коммиты с тем, что я делал - я предоставил. Все аргументы игнорят и говорят «закрой таски». Чтобы закрыть эти таски, нужно потратить 1-1.5 месяца. Вот такая история. Договора не было, официально не устроен. Теперь будем знать, что бывает и такое, лол.
Стандартная схема: нанимаем человека, первый месяц платим ему 20тыс. грн, второй месяц платим 20тыс. грн и шантажируем его, что пока он не закроет все таски - зарплаты не будет. Человек в панике за месяц закрывает таски(зарплату же хочется), ему платят деньги и говорят «прощай», а все мелкие таски будет закрывать кодер на удаленке(которому платят 15тыс. грн). Красота
как не отключать питание от звуковой карты?
встроенная hd audio. После нескольких секунд неактивности отключает питание и ощущается звук фона и появляется звук от колёсика мыши. Как это убрать?
как переделать функцию, чтобы она загружала переменные?
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"
А как бы сделать так, чтобы внутри скрипта инициализировались эти переменны?
как задать минимальную температуру, при которой должен запускаться fan?
через nvidia-settings
тюнинг видеокарты nvidia
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 &
Что еще есть из полезного?
Зарплата 50% для IT
Украина. Начинается. Работодатели начинают вещать о том, чтобы обрезать штату зарплату на 50%. Если мы все прогнёмся под это, то на этой зарплате и останемся. Чтобы вы были в курсе. Думаю в РФ ситуация будет такой же.
Зарегистрировать апи в админке
Есть апи, нужно зарегистрировать в админ панели. Как это сделать?
microsd ntfs раздел
Отформатировал в 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.
compton подтормаживает на nvidia
есть такие настройки. 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)
как взять результат значения bash команды
Мне нужно следующее:
- взять bklid /dev/sda
- найти строку с UUID диска в /etc/fstab
- заменить стандартные опции монтирования на
noatime,commit=600,barrier=0,errors=remount-ro 0 1
как это в asnsible выглядит?
kitty шрифт выглядит не так, как в st
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
добавить текст перед найденным текстом
есть текст
some
some1 blablabla
some
some1 blablaba
some
some
some
надо сделать так:
some
vasya
some1 blablabla
some
vasya
some1 blablaba
some
some
some
Как это сделать sed’om ?
чем устроить стресс тест для видеокарты под linux и windows
Приобрел б\у карту, хочу ей стресс-тест сделать. Чем это сделать под linux и windows?
обработка {}
как правильно обрабатывать {}?
- name: "Mkdir /mnt dir's"
command: |
mkdir -p /mnt/{c,d,fiio,flash}
mkdir -p /mnt/some
ls /mnt
c {c,d,fiio,flash} d fiio flash some
| ← назад |