LINUX.ORG.RU

Избранные сообщения snake266

Простая и лёгкая реализация UDP/IP для микроконтроллеров

 , ,

Группа Hardware and Drivers

Ориентирована на применение в системах, где микроконтроллер выступает в роли UDP сервера, с которым извне устанавливает «соединение» клиент (да, само по себе UDP соединений не имеет, я знаю):

  • Библиотека полностью событийно-ориентирована.
  • Не надо писать никаких структур состояния приложения.
  • Нет сокетов – только коллбэки на событие прихода пакета.
  • Всего 890 строчек кода.
  • Поддерживается ARP ответ, ICMP ответ, UDP.
  • Имеет ARP таблицу, заполняемую от входящих IP пакетов. При отправке IP пакета, если MAC адрес не найден, то библиотека шлёт IP с широковещательным MAC.

Не поддерживаются:

  • ARP запросы;
  • ICMP запросы;
  • маршрутизация;
  • DHCP;
  • DNS.

>>> Подробности (github.com)

cvs-255
()

Что посоветуете почитать по Python, чтобы подтянуть теорию?

 ,

Сабж
Нужно именно как и почему оно работает, чем отличается <похожаяфича_нейм_1> от <похожаяфича_нейм_2>, немного про внутреннее устройство и подобное.

Qwentor
()

BFQ не очень хорош для многих SSD

 , , mq-deadline,

Public Service Announcement:

Случайно обнаружил, что bfq на многих ssd сводит производительность к однопоточной.
На nvme и sata Samsung’ах всё в порядке, и пропускная способность bfq растёт с количеством одновременных запросов.
А на ADATA и Transcend вот так:

    Device Model:     TS256GMTS400S
    Serial Number:    0F109200E32506200140
    Firmware Version: P1225CH4
    ATA Version is:   ACS-2 (minor revision not indicated)
    SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
    Timing O_DIRECT disk reads: 1472 MB in  3.00 seconds = 489.96 MB/sec

    /dev/sda, 256.06 GB, 1 threads:
     512   B blocks: 11361.3 IO/s,   5.5 MiB/s ( 46.5 Mbit/s)
       1 KiB blocks: 7762.1 IO/s,   7.6 MiB/s ( 63.6 Mbit/s)
       2 KiB blocks: 4545.7 IO/s,   8.9 MiB/s ( 74.5 Mbit/s)
       4 KiB blocks: 2476.4 IO/s,   9.7 MiB/s ( 81.1 Mbit/s)
       8 KiB blocks: 2483.9 IO/s,  19.4 MiB/s (162.8 Mbit/s)
      16 KiB blocks: 2271.1 IO/s,  35.5 MiB/s (297.7 Mbit/s)
      32 KiB blocks: 1941.6 IO/s,  60.7 MiB/s (509.0 Mbit/s)
      64 KiB blocks: 1360.1 IO/s,  85.0 MiB/s (713.1 Mbit/s)
     128 KiB blocks:  968.5 IO/s, 121.1 MiB/s (  1.0 Gbit/s)

    /dev/sda, 256.06 GB, 4 threads:
     512   B blocks: 12958.1 IO/s,   6.3 MiB/s ( 53.1 Mbit/s)
       1 KiB blocks: 8832.4 IO/s,   8.6 MiB/s ( 72.4 Mbit/s)
       2 KiB blocks: 4945.6 IO/s,   9.7 MiB/s ( 81.0 Mbit/s)
       4 KiB blocks: 2598.6 IO/s,  10.2 MiB/s ( 85.2 Mbit/s)
       8 KiB blocks: 2553.3 IO/s,  19.9 MiB/s (167.3 Mbit/s)
      16 KiB blocks: 2410.9 IO/s,  37.7 MiB/s (316.0 Mbit/s)
      32 KiB blocks: 2089.0 IO/s,  65.3 MiB/s (547.6 Mbit/s)
      64 KiB blocks: 1463.4 IO/s,  91.5 MiB/s (767.2 Mbit/s)
     128 KiB blocks: 1056.8 IO/s, 132.1 MiB/s (  1.1 Gbit/s)

Этот же Transcend, но с mq-deadline:

/dev/sda, 256.06 GB, 4 threads:
 512   B blocks: 42803.6 IO/s,  20.9 MiB/s (175.3 Mbit/s)
   1 KiB blocks: 34526.3 IO/s,  33.7 MiB/s (282.8 Mbit/s)
   2 KiB blocks: 24795.4 IO/s,  48.4 MiB/s (406.2 Mbit/s)
   4 KiB blocks: 15848.5 IO/s,  61.9 MiB/s (519.3 Mbit/s)
   8 KiB blocks: 15403.9 IO/s, 120.3 MiB/s (  1.0 Gbit/s)
  16 KiB blocks: 9705.9 IO/s, 151.7 MiB/s (  1.3 Gbit/s)
  32 KiB blocks: 5583.4 IO/s, 174.5 MiB/s (  1.5 Gbit/s)
  64 KiB blocks: 2967.9 IO/s, 185.5 MiB/s (  1.6 Gbit/s)
 128 KiB blocks: 1666.6 IO/s, 208.3 MiB/s (  1.7 Gbit/s)

Если у вас не Самсунг, то bfq лучше не использовать.

P.S. Ещё едет терабайтный WD Blue, дополню позже.
P.P.S. Linux lin 5.10.0-0.bpo.5-amd64 #1 SMP Debian 5.10.24-1~bpo10+1 (2021-03-29) x86_64 GNU/Linux

aidaho
()

Как выбрать компьютер для кодинга?

 

Очередной мук выбора тред =)

Хочу взять себе компик для работы. Как правило у меня запущенны: редактор, браузер и… и всё. Может быть запущен ещё один браузер, и ещё один редактор. Упор хочу сделать на быстрый SSD.

Бюджет: ~30k гривен (~80k) рублей

Я в этих вопросах не очень шарю, поэтому надавайте мне советов, на что смотреть и т.д.

А ещё есть парочка вопросов:

  1. Можно ли что-то купить б/у или на алике, например мать или GPU?
  2. Что сейчас дешевле Intel vs AMD и NVidia vs Radeon
  3. На что смотреть при выборе проца и какое поколение вообще сейчас лучше?
  4. Стоит ли брать камни с разблокированным множителем?
  5. Какую частоту ОП лучше брать или в целом пофиг?
CryNet
()

Как передать экран Tablet Samsung S7 в отдельное окно на мониторе компьютера?

 , ,

Надо передать весь экран планшета в отдельное окно на другом компе, где стоит ubuntu. Цель простая - использовать планшет как графический экран для лекций. Начал искать в инете и вообще запутался. Есть например webrtc desktop. Приложение хрома. Как пользоваться одному аллаху известно. Надо же так все засекретить, так и не нашел. Поделитесь кто знает какое нибудь решение на основе webrtc или что нибудь другое.

rustamych
()

Разыскивается мессенджер с мобилок со своим сервером + шифрование обмена сообщениями.

 

кто что использует?
чтобы клиенты под мобилки (андроид, иос и тд) были

Vlad-76
()

Опять меня атакует провайдер

 , ,

Вряд ли это многим будет интересно, но на всякий случай держу в курсе. Казахтелеком в Нур-Султане подменяет сертификат при попытке зайти на https://rutracker.org/ (и, вероятно, некоторые другие сайты). Ещё несколько дней назад вышеупомянутый достойный сайт по https не открывался совсем, а по http открывался без проблем.

многобуков

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            e7:c6:d8:ff:97:5d:46:03:95:44:a3:c1:c0:3e:1d:7e
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = KZ, O = ISCA, CN = Intermediate
        Validity
            Not Before: May  2 16:03:17 2021 GMT
            Not After : Jul 31 16:03:17 2021 GMT
        Subject: CN = rutracker.org
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:b4:80:70:49:32:04:7b:e1:9f:05:96:11:79:1a:
                    4d:7e:bf:d8:a7:65:42:91:28:fd:e3:63:28:40:10:
                    ae:c2:57:0b:73:fc:4d:c7:2c:cf:d1:28:8e:0e:a1:
                    f0:3d:84:53:2a:91:71:42:e4:bd:0f:f3:5c:86:06:
                    7b:6b:9b:b8:2c:06:d8:fa:19:12:72:43:d0:ba:71:
                    b9:9f:8e:2b:d2:fa:ce:3f:f5:e4:30:2f:e8:34:29:
                    52:1a:44:66:44:f9:4b:2c:73:06:fe:17:eb:10:54:
                    1b:8f:07:9c:cb:23:15:dd:81:73:39:31:64:6f:2c:
                    45:f3:a6:12:bc:24:a1:83:a7:c2:ef:23:e1:06:c0:
                    a4:52:f6:63:00:0f:33:d5:47:11:9f:dd:59:4c:2f:
                    f2:3c:10:e7:11:7e:6f:dd:e6:72:83:34:dd:ea:1d:
                    08:ec:5f:c7:ef:42:72:8a:b2:a7:a9:90:6d:d5:5f:
                    37:49:f6:91:68:83:2f:05:a5:2a:5f:0e:9e:3d:3d:
                    c5:9d:7f:0d:7b:df:8d:3c:ac:9c:4b:8d:f3:e3:34:
                    5c:8a:18:c9:ac:08:ae:b5:2f:5e:55:2c:31:dc:53:
                    79:a5:4a:a1:32:c5:d7:ee:4c:d2:6e:75:98:a1:e0:
                    9b:26:2d:a3:aa:13:05:15:8f:6c:3b:95:9a:f7:7a:
                    ad:6f
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                F3:D1:9C:A6:73:5E:B7:24:A5:65:A5:3B:4A:80:B9:BE:EC:41:AF:9F
            X509v3 Authority Key Identifier: 
                keyid:DF:15:4C:1F:E4:DB:5C:A5:78:9E:08:22:15:42:59:B0:B6:66:A7:FE
                DirName:/CN=Information Security Certification Authority/O=ISCA/C=KZ
                serial:5F:15:4C:1F:E4:DB:5C:A5:78:9E:08:22:15:42:59:B0:B6:66:A7:FE

            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Key Usage: 
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Subject Alternative Name: 
                DNS:rutracker.net, DNS:rutracker.nl, DNS:rutracker.org
    Signature Algorithm: sha256WithRSAEncryption
         a5:48:85:33:8c:e4:0c:02:08:d3:77:cb:57:a0:96:8d:92:fa:
         e2:7a:93:ff:e0:ae:57:5a:fa:6c:6c:f0:a3:cb:77:19:0a:98:
         f5:da:cf:2f:1e:11:f8:28:d5:9f:28:71:fd:55:36:8c:8b:23:
         bd:4e:da:9c:12:01:3a:77:76:e3:ff:c7:f8:32:7e:7f:37:e2:
         9d:50:5c:5b:49:c1:a6:1b:0f:42:22:f9:fe:d0:23:9e:ab:2f:
         f3:d0:85:ca:62:9f:28:02:f6:a4:4f:0c:61:96:b7:e7:05:3d:
         f7:f3:de:d1:4b:49:fb:bf:d2:50:f7:f8:f7:56:27:38:92:ca:
         29:fd:3a:45:63:61:97:a5:53:ad:87:62:c9:22:b0:7b:9d:f7:
         50:65:15:cd:35:ce:8b:75:ff:41:a6:1a:85:be:23:f8:ac:72:
         bc:44:bc:99:f8:46:72:4e:eb:39:76:f4:d8:37:e6:43:1c:a8:
         e4:25:e5:f5:92:7d:e8:48:1b:85:cf:ae:a9:21:72:9c:46:4b:
         a4:36:bb:1d:38:60:42:2a:e4:48:9c:da:83:19:13:fe:16:7f:
         0d:ed:a4:6e:83:e2:34:a4:c0:b1:41:71:07:b6:52:e0:19:32:
         5b:8c:31:69:8e:82:37:95:ab:ac:fb:f7:0a:bc:c8:1e:a8:3b:
         53:95:9a:aa
-----BEGIN CERTIFICATE-----
MIID/zCCAuegAwIBAgIRAOfG2P+XXUYDlUSjwcA+HX4wDQYJKoZIhvcNAQELBQAw
MzELMAkGA1UEBhMCS1oxDTALBgNVBAoTBElTQ0ExFTATBgNVBAMTDEludGVybWVk
aWF0ZTAeFw0yMTA1MDIxNjAzMTdaFw0yMTA3MzExNjAzMTdaMBgxFjAUBgNVBAMT
DXJ1dHJhY2tlci5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0
gHBJMgR74Z8FlhF5Gk1+v9inZUKRKP3jYyhAEK7CVwtz/E3HLM/RKI4OofA9hFMq
kXFC5L0P81yGBntrm7gsBtj6GRJyQ9C6cbmfjivS+s4/9eQwL+g0KVIaRGZE+Uss
cwb+F+sQVBuPB5zLIxXdgXM5MWRvLEXzphK8JKGDp8LvI+EGwKRS9mMADzPVRxGf
3VlML/I8EOcRfm/d5nKDNN3qHQjsX8fvQnKKsqepkG3VXzdJ9pFogy8FpSpfDp49
PcWdfw173408rJxLjfPjNFyKGMmsCK61L15VLDHcU3mlSqEyxdfuTNJudZih4Jsm
LaOqEwUVj2w7lZr3eq1vAgMBAAGjggEnMIIBIzAdBgNVHQ4EFgQU89GcpnNetySl
ZaU7SoC5vuxBr58wgZAGA1UdIwSBiDCBhYAU3xVMH+TbXKV4nggiFUJZsLZmp/6h
V6RVMFMxNTAzBgNVBAMTLEluZm9ybWF0aW9uIFNlY3VyaXR5IENlcnRpZmljYXRp
b24gQXV0aG9yaXR5MQ0wCwYDVQQKEwRJU0NBMQswCQYDVQQGEwJLWoIUXxVMH+Tb
XKV4nggiFUJZsLZmp/4wDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBaAwHQYDVR0l
BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMDUGA1UdEQQuMCyCDXJ1dHJhY2tlci5u
ZXSCDHJ1dHJhY2tlci5ubIINcnV0cmFja2VyLm9yZzANBgkqhkiG9w0BAQsFAAOC
AQEApUiFM4zkDAII03fLV6CWjZL64nqT/+CuV1r6bGzwo8t3GQqY9drPLx4R+CjV
nyhx/VU2jIsjvU7anBIBOnd24//H+DJ+fzfinVBcW0nBphsPQiL5/tAjnqsv89CF
ymKfKAL2pE8MYZa35wU99/Pe0UtJ+7/SUPf491YnOJLKKf06RWNhl6VTrYdiySKw
e533UGUVzTXOi3X/QaYahb4j+KxyvES8mfhGck7rOXb02DfmQxyo5CXl9ZJ96Egb
hc+uqSFynEZLpDa7HThgQirkSJzagxkT/hZ/De2kboPiNKTAsUFxB7ZS4BkyW4wx
aY6CN5WrrPv3CrzIHqg7U5Waqg==
-----END CERTIFICATE-----

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            5f:15:4c:1f:e4:db:5c:a5:78:9e:08:22:15:42:59:b0:b6:66:a7:fe
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN = Information Security Certification Authority, O = ISCA, C = KZ
        Validity
            Not Before: Jun 18 12:54:34 2021 GMT
            Not After : Sep  1 12:54:34 2021 GMT
        Subject: C = KZ, O = ISCA, CN = Intermediate
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:b8:30:cf:c6:a9:9b:dd:b1:ce:ab:38:27:35:cc:
                    b9:88:45:04:65:70:46:ae:96:f7:43:35:d3:52:e0:
                    3a:1e:4b:64:3a:59:f1:b6:fa:87:ab:b3:df:5e:d8:
                    66:bd:87:89:1f:29:40:43:16:e9:d4:5a:6c:e9:38:
                    5f:cb:8e:a2:f3:6c:6f:0d:a7:53:22:e3:d5:82:dc:
                    5c:3a:e3:83:b3:c3:62:4e:46:8c:a4:9d:84:9e:c2:
                    49:74:f0:7e:e9:c9:8f:be:2a:1d:d3:3a:5b:a6:57:
                    d6:1f:45:40:0c:83:95:70:f1:f5:fa:ce:a6:5f:92:
                    c2:bc:b2:68:4a:df:64:14:12:39:b9:35:95:1e:b3:
                    ea:60:17:be:65:35:95:7c:e6:ac:4b:87:9b:22:5a:
                    90:7a:69:00:e3:ba:7b:3e:96:71:09:5a:59:e6:7f:
                    30:fe:34:73:38:b1:8c:14:68:cc:9f:9f:e3:12:92:
                    af:96:94:5b:59:29:30:12:07:47:f1:7a:2d:45:7c:
                    c0:ca:9f:04:2b:59:ee:17:cd:8c:85:35:97:fe:c1:
                    de:5c:47:ef:a8:1a:e0:e9:d2:3d:5f:b9:a1:71:8f:
                    bb:05:9f:46:78:9a:d1:46:11:af:13:c1:cb:2b:47:
                    0c:10:74:9a:50:1d:f6:ad:5c:8c:55:48:50:e7:f4:
                    1b:81
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                DF:15:4C:1F:E4:DB:5C:A5:78:9E:08:22:15:42:59:B0:B6:66:A7:FE
            X509v3 Authority Key Identifier: 
                keyid:25:44:98:FC:AA:DD:96:DE:51:81:47:2E:D0:7B:16:3F:F7:9E:6A:D3
                DirName:/CN=Information Security Certification Authority/O=ISCA/C=KZ
                serial:25:44:98:FC:AA:DD:96:DE:51:81:47:2E:D0:7B:16:3F:F7:9E:6A:D3

    Signature Algorithm: sha256WithRSAEncryption
         a1:7e:b3:3a:f2:61:a6:c0:e6:32:90:88:e3:43:f4:b1:c0:2a:
         b7:70:8d:f2:14:df:4c:ec:91:33:29:a3:ad:9d:44:87:21:dc:
         39:72:b6:97:59:0c:4c:74:f2:6e:76:50:fb:9f:4a:95:dd:d4:
         01:c1:47:54:5c:37:35:17:07:3c:14:d9:79:d5:94:28:c2:52:
         e6:b1:d0:34:71:9f:10:b7:bc:70:dc:d5:9f:e3:91:7f:4d:16:
         f4:ae:24:5f:f5:11:95:a8:88:90:78:a8:ff:43:a7:b6:0a:5a:
         c6:c0:3a:22:63:7a:61:30:da:0f:6a:e8:f3:a8:16:79:2f:16:
         9e:2e:7b:db:68:59:79:4b:6d:45:1d:2e:8b:bc:83:e0:ff:86:
         4c:82:61:92:28:7b:bc:f4:72:b2:3a:50:d0:0a:79:8f:db:27:
         2b:ac:6a:20:c1:14:cd:8c:4c:ba:4e:09:f1:2f:c7:dc:40:d2:
         66:45:1a:3e:46:e1:ab:61:57:1b:3a:14:2b:c3:21:ec:24:4a:
         84:28:b8:09:02:49:56:14:22:1d:92:f1:ea:4b:f0:b8:11:7f:
         ca:70:bc:16:08:82:6d:06:49:65:b6:da:e1:5d:8a:e4:0d:22:
         11:92:56:30:e2:bb:ab:86:c8:f8:36:20:a2:2b:d7:71:52:d0:
         1b:6a:1e:54:09:8b:a3:d1:32:3d:78:c2:59:20:ff:e8:8e:c5:
         23:75:74:41:d8:83:fd:e2:1e:b5:5a:d1:59:9f:1f:ad:04:89:
         83:86:ee:2b:d4:ce:da:89:65:5e:b1:db:18:fe:d8:9a:df:48:
         3f:bb:fc:70:c8:fe:62:cd:50:c7:ef:62:44:ab:88:c9:16:a0:
         52:7d:fb:ee:d5:37:25:36:a0:cb:8a:0a:aa:04:59:75:29:a0:
         d0:1f:70:05:77:ba:4f:d5:1a:cd:ce:5f:7c:82:31:c4:10:80:
         44:9a:2f:e7:3b:32:df:fc:87:d1:0a:59:5a:7c:2b:d2:24:8d:
         8c:a3:57:d5:32:bb:71:ed:4e:a3:ad:30:f9:56:14:2c:b1:37:
         d6:09:a8:c6:3a:ad:2b:c0:6a:e5:90:12:ed:a5:c9:ee:00:40:
         c7:8c:2a:1d:c9:f2:10:f6:f0:f2:92:8a:2a:d5:e4:21:01:21:
         29:e8:ac:f0:f3:d0:a7:52:f3:0f:7e:ea:8b:2a:14:27:14:e4:
         41:13:ba:93:57:09:22:bd:20:87:67:b8:f3:d8:f7:10:74:e1:
         30:ca:8b:e2:c4:e1:fb:19:5d:30:35:e4:9f:24:82:32:b7:1a:
         44:46:53:3a:cf:39:96:95:b2:dc:1c:21:7d:7b:a3:90:3c:fc:
         a2:8b:11:61:06:cc:c7:ba
-----BEGIN CERTIFICATE-----
MIIE6zCCAtOgAwIBAgIUXxVMH+TbXKV4nggiFUJZsLZmp/4wDQYJKoZIhvcNAQEL
BQAwUzE1MDMGA1UEAxMsSW5mb3JtYXRpb24gU2VjdXJpdHkgQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkxDTALBgNVBAoTBElTQ0ExCzAJBgNVBAYTAktaMB4XDTIxMDYx
ODEyNTQzNFoXDTIxMDkwMTEyNTQzNFowMzELMAkGA1UEBhMCS1oxDTALBgNVBAoT
BElTQ0ExFTATBgNVBAMTDEludGVybWVkaWF0ZTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBALgwz8apm92xzqs4JzXMuYhFBGVwRq6W90M101LgOh5LZDpZ
8bb6h6uz317YZr2HiR8pQEMW6dRabOk4X8uOovNsbw2nUyLj1YLcXDrjg7PDYk5G
jKSdhJ7CSXTwfunJj74qHdM6W6ZX1h9FQAyDlXDx9frOpl+SwryyaErfZBQSObk1
lR6z6mAXvmU1lXzmrEuHmyJakHppAOO6ez6WcQlaWeZ/MP40czixjBRozJ+f4xKS
r5aUW1kpMBIHR/F6LUV8wMqfBCtZ7hfNjIU1l/7B3lxH76ga4OnSPV+5oXGPuwWf
Rnia0UYRrxPByytHDBB0mlAd9q1cjFVIUOf0G4ECAwEAAaOB1jCB0zAPBgNVHRMB
Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU3xVMH+TbXKV4nggi
FUJZsLZmp/4wgZAGA1UdIwSBiDCBhYAUJUSY/Krdlt5RgUcu0HsWP/eeatOhV6RV
MFMxNTAzBgNVBAMTLEluZm9ybWF0aW9uIFNlY3VyaXR5IENlcnRpZmljYXRpb24g
QXV0aG9yaXR5MQ0wCwYDVQQKEwRJU0NBMQswCQYDVQQGEwJLWoIUJUSY/Krdlt5R
gUcu0HsWP/eeatMwDQYJKoZIhvcNAQELBQADggIBAKF+szryYabA5jKQiOND9LHA
KrdwjfIU30zskTMpo62dRIch3DlytpdZDEx08m52UPufSpXd1AHBR1RcNzUXBzwU
2XnVlCjCUuax0DRxnxC3vHDc1Z/jkX9NFvSuJF/1EZWoiJB4qP9Dp7YKWsbAOiJj
emEw2g9q6POoFnkvFp4ue9toWXlLbUUdLou8g+D/hkyCYZIoe7z0crI6UNAKeY/b
JyusaiDBFM2MTLpOCfEvx9xA0mZFGj5G4athVxs6FCvDIewkSoQouAkCSVYUIh2S
8epL8LgRf8pwvBYIgm0GSWW22uFdiuQNIhGSVjDiu6uGyPg2IKIr13FS0BtqHlQJ
i6PRMj14wlkg/+iOxSN1dEHYg/3iHrVa0VmfH60EiYOG7ivUztqJZV6x2xj+2Jrf
SD+7/HDI/mLNUMfvYkSriMkWoFJ9++7VNyU2oMuKCqoEWXUpoNAfcAV3uk/VGs3O
X3yCMcQQgESaL+c7Mt/8h9EKWVp8K9IkjYyjV9Uyu3HtTqOtMPlWFCyxN9YJqMY6
rSvAauWQEu2lye4AQMeMKh3J8hD28PKSiirV5CEBISnorPDz0KdS8w9+6osqFCcU
5EETupNXCSK9IIdnuPPY9xB04TDKi+LE4fsZXTA15J8kgjK3GkRGUzrPOZaVstwc
IX17o5A8/KKLEWEGzMe6
-----END CERTIFICATE-----

Корневой сертификат не высылают. Интересно, где его взять. Прошлый раз на сайтах провайдеров публиковали, но его браузеры в чёрный список внесли, тут Subject отличается, значит новый выпустили.

Legioner
()

Домашний сервер доступ по имени хоста

 ,

Значит у меня есть старый комп (я себе ноут купил, епта), решил я из него сервер-помойку сделать, поставил Ubuntu Server и на нее поставил avahi-daemon. Значит avahi-daemon.service запущен, но подключиться я могу только по айпи:

~ on ☁️  took 36m13s 
❯ ssh sergey@ubuntu.local      
ssh: Could not resolve hostname ubuntu.local: Name or service not known

~ on ☁️  
❯ ssh sergey@192.168.0.103     
sergey@192.168.0.103's password: 
Permission denied, please try again.
sergey@192.168.0.103's password: 
Welcome to Ubuntu 21.04 (GNU/Linux 5.11.0-18-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sun Jun 20 08:55:12 PM UTC 2021

  System load:    0.14      Memory usage: 1%   Processes:       274
  Usage of /home: unknown   Swap usage:   0%   Users logged in: 0

  => There were exceptions while processing one or more plugins. See
     /var/log/landscape/sysinfo.log for more information.

 * Super-optimized for small spaces - read how we shrank the memory
   footprint of MicroK8s to make it the smallest full K8s around.

   https://ubuntu.com/blog/microk8s-memory-optimisation

34 updates can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable


Last login: Sun Jun 20 20:15:09 2021 from 192.168.0.106
sergey@ubuntu:~$

Что где еще прописать нужно?

tz4678
()

Купил 4750G, сам же отвечу на свои вопросы

 ,

В продолжение этой темы.

aquadon Korchevatel

Камень вчера приехал, в плане binning'а оказался не ок - хоть и PGT и произведен в феврале 2021. Ну т.е ручной разгон CPU в моем случае никакого смысла не имеет, iGPU пока тоже не разгонял.

  • Встройка под линуксом работает хорошо, через VAAPI без проблем декодируется VP9 8K видео.
  • В доте встройка на стоковых частотах выдает 60FPS на высоких настройках при QHD разрешении, во время экшена с кучей юнитов бывают просадки до 40. В Wow Classic стабильные 144FPS на высоких, временами бывают просадки до 100-120.
  • Память до 5000 разогнать можно (с делителем или в асинхроне), 1:1 потолок для моего камня - 4532 MT/s, соответственно потолок IF - 2266MHz, когда как у не-XT камней 3000 серии всего 1900 MHz. Естественно, стабильно на 4533 MT/s память завести не удалось, но это не проблема камня или доски (Strix B550-I), а самого кита памяти.
  • 8MB L3 кеша это конечно боль - но ram latency ниже, чем у камней 3000 серии; говорят что после разгона с плотным тюнингом всех таймингов можно добиться 55-56 ns против 65-68 ns на типичном сетапе с 3000 камнем и 3800MT/s памятью. Короче, жить можно.

Сам камень вполне холодный, в стресс-тестах максимальная температура была около 70 °C - и это с моей хреновой башней, с нормальной было бы сильно ниже.

Думаю, вполне годный вариант для рабочей машины, а достаточно мощная встройка после разгона и в играх поразвлекаться позволит.

UPD: На данный момент память стабильно заводится на 4400CL18 1.43V и 1.2V Vsoc.

Скинул до 4200 из-за случайных тепловых ошибок.

Meyer
()

коллекция виджетов к awesomewm

 

Кроме вот этого, есть какая-то коллекция виджетов?

https://github.com/streetturtle/awesome-wm-widgets

Какими виджетами пользуетесь? Делитесь:)

serg002
()

Помогите выбрать новую электронную книжку

 , ,

Случилась у меня беда бедовая: красил потолки и не заметил, что оставил на столе свой Kindle Touch 12го года, который служил мне верой и правдой все это время по нескольку часов каждый день. Уронил я на него ножницы и пробил экран. Вроде не насовсем, но появился артефакт, который перекрывает текст при чтении, что заставляет сбиваться и вызывает дискомфорт.

Обидно до слез, ибо я надеялся не менять его еще лет 10 (недавно заменил аккум), т.к. читалка была идеальной (практически сразу взломанной и с джейлбрейком, читал в основном через CoolReader, который еще и обложку книги в режиме сна показывал на экране).

Встал вопрос - что сейчас выбрать из нового? Последний киндл и снова его ломать? Говорят, что они уже не те - экран сплошное стекло, которое может треснуть (мой прожил в режиме бешеного использования, пошоркался корпуском, стерлись надписи и краска, но экран был как новый, только пыльный).

Или что-то из покетбуков? Щупал их, когда дарили в подарок теще, показались на фоне киндла каким-то странным пластиковым куском фигни, не вызывающим доверия. А если их, то на какие смотреть? Вроде хвалят 632 аква, но тут же в отзывах пишут про лопающиеся экраны на третий день. Просто 632 - тоже местами в отзывах ругают за лаги и глюки.

На что смотреть, камрады?

Zhbert
()

Rust и наследование

 ,

Допустим, у нас есть структура игрового движка:

struct GameEngine {
    ... тут всякие кроссплатформенные поля вроде id OpenGL программ и т. д. ...
}

impl GameEngine {
    fn new() -> GameEngine {
        GameEngine {
            ...
        }
    }

    fn render(&mut self) {
        ...
    }

    ... какие-то ещё методы для обработки всяких событий ...
}

Дальше, мы хотим реализовать дочерний класс, который бы реализовывал движок под конкретную платформу. В Rust принято использовать композицию вместо наследования, окей:

struct SDLGameEngine {
    GameEngine engine;
    ... Всякие платформозависимые переменные ...
    window: sdl2::video::Window
}

impl SDLGameEngine {
    fn new() -> SDLGameEngine {
        SDLGameEngine {
            engine: GameEngine::new(),
            ...
        }
    }

    fn main_loop(&mut self) {
        loop {
            self.handle_events();
            self.engine.render();
        }
    }

    ...
}

Всё хорошо до тех пор, пока SDLGameEngine полностью рулит GameEngine - вызывает всякие разные методы в ответ на всякие разные события (рендер, нажатие клавиш, движения мыши), а GameEngine меняет только своё внутреннее состояние и дёргает вызовы OpenGL.

Однако в один прекрасный момент нам захотелось показывать FPS в заголовке окна. При этом логика рассчёта FPS, очевидно, не зависит от платформы, а вот процедура смены заголовка окна явно зависит. Так что теперь GameEngine должен повлиять на SDLGameEngine, а не наоборот.

Окей, делаем трейт:

trait GameEnginePlatform {
    fn set_title(&mut self, title: &str);
}

А теперь у нас есть три варианта:

1. Реализуем трейт для SDLGameEngine (ведь в нём лежит реальное окно). Но не можем передать его в конструктор GameEngine, потому что в момент создания GameEngine SDLGameEngine ещё не существует. В свою очередь SDLGameEngine не может быть создан без экземпляра GameEngine. Начинать использовать указатели как-то глупо с учётом того, что структура очень простая (кто кем владеет) и у нас нет проблем с управлением памятью.

2. Реализуем трейт для SDLGameEngine (ведь в нём лежит реальное окно). Не будем передавать его в конструктор, добавим аргумент к функции render:

fn render(&mut self, platform: &mut dyn GameEnginePlatform) {
    ...
    platform.set_title(...);
}

...

fn main_loop(&mut self) {
    loop {
        self.handle_events();
        self.engine.render(self);
    }
}

Получаем ошибку заимствования:

   |         self.engine.render(self);
   |         ^^^^^^^^^^^^^^^^^^^----^
   |         |                  |
   |         |                  first mutable borrow occurs here
   |         second mutable borrow occurs here
   |         first borrow later captured here by trait object

В целом логично.

3. Дробим SDLGameEngine на две части. Одна основная, а другая управляет окном и реализует трейт для смены заголовка. Передаём её в конструктор GameEngine. И... Лишаемся возможности управлять окном из SDLGameEngine. А нам это хочется, ведь часть операций над окном платформозависимая.

4. Дробим SDLGameEngine на две части. Одна основная, а другая управляет окном и реализует трейт для смены заголовка. Храним её внутри SDLGameEngine, передаём ссылку в метод render. В свободное от вызова этого метода время можем управлять окном сами.

Получается, что в Rust единственный способ связи родителя класса с потомком (в терминах ООП) это вариант 4. Или есть альтернативы? Мне не очень нравится, что GameEngine теперь может обратиться к SDLGameEngine исключительно в специальных методах, которые принимают специальные параметры, а SDLGameEngine пришлось распилить на две части. В данном примере всё очень примитивно, однако в более сложной программе, мне кажется, это может стать проблемой.

Бонусный вопрос: я правильно понимаю, что trait это фактически vtable отделённый от самого объекта и в Rust каждая структура может иметь множество vtable? Как это вообще реализовано на низком уровне?

KivApple
()

Книга «Командная строка Linux. Полное руководство. 2-е межд. изд.»

 ,

Книга «Командная строка Linux. Полное руководство. 2-е межд. изд.»
Группа Документация

Добрый день! Предлагаю вашему вниманию еще одну книгу — «Командная строка Linux. Полное руководство. 2-е межд. изд.» Ее можно заказать на сайте издательства, и если применить промокод LinuxORG, то получите скидку 30%. Действует на все книги издательства. Также в подарок при покупке бумажной будет ее электронная версия.

Отрывок из книги для ознакомления:

( читать дальше... )

Об авторе

Уильям Шоттс (William Shotts) — профессиональный разработчик программного обеспечения с более чем 30-летним стажем, который уже больше 20 лет активно пользуется операционной системой Linux. Имеет богатый опыт разработки программного обеспечения, технической поддержки, контроля качества и написания документации. Также является создателем LinuxCommand.org, образовательного и информационно-просветительского сайта, посвященного Linux, где публикуются новости, обзоры и оказывается поддержка пользующимся командной строкой Linux.

Желаю приятного чтения)

>>> Можно купить на сайте издательства (piter.com)

Victor78
()

Радио. Linux. XXI век

 ,

Посвящается Дню Радио!

Вот так я использую RTL-SDR для прослушивания радиоэфира. На скрине мы видим замечательную программу GQRX, реализующую программный радиоприемник.

Немного технических деталей. RTL-SDR - это устаревший TV-тюнер, который радиолюбители используют в качестве ЦАП с параметрами 8 бит/14.4 Мгц. Такой ЦАП при желании может захватить сразу все низкочастотные диапазоны - ДВ, СВ, и КВ! Остается только цифровым фильтром выделить из оцифрованного сигнала нужную радиостанцию, что и делают программы типа GQRX или SDRSharp.

Также в микросхему встроен тюнер, который преобразует высокие частоты в более низкие и позволяет слушать эфир аж до 2 ГГц. То есть это очень универсальный приемник.

Итак, что сейчас можно услышать в эфире? В XXI веке можно не только услышать, но и увидеть! SDR программы покажут нам «водопад» - визуализацию радиосигналов в выбранном диапазоне.

На основном скрине - любительский диапазон 40 метров. Каждая желтая полоска - это любительская станция. Щелкая по ней, выбираем станцию и приемник настраивается на нужную частоту. Как видно, диапазон сейчас забит - станции друг на друга местами налазят. Хотя сигналы не очень сильные - время суток не лучшее для прохождения тут.

Вещательный диапазон 31 метр, лес станций, в основном это радио Китая:

https://imgur.com/wLwkfJe

Вещательный диапазон 25 метров:

https://imgur.com/ILRDunL

Любительский 40 метров, телеграфный и «цифровой» участки:

https://imgur.com/nsY6RYL

Тоненькие прерывистые линии - это станции, работающие морзянкой. Справа гремит FT8 - цифровая связь, которая никогда не затихает. А в середине - знаменитая танцпольная частота 7.055 Мгц, где днем и ночью идут с… поры на политические темы. Ну вы поняли.

Для того чтобы декодировать FT8 сигналы, я использую другую программу - WSJTX, вот как это выглядит:

https://imgur.com/txYPxYh

Справа - декодированные позывные станций, которые связываются друг с другом. В этом виде связи можно только передать свой позывной и уровень сигнала «собеседника». Но связь дико пробивная, на минимальной мощности можно связаться на огромные расстояния.

И напоследок - как это звучит. Вы не забыли, что мы про радио, а его же слушать надо, а не смотреть )))

https://disk.yandex.by/d/AjqPqCA2LDe8UQ

«Скрепноватая» тема передачи вначале - это радио Китая, русская служба, во всей красе. В конце - любительский эфир, SSB модуляция, диапазон 40 метров.

Вот такое оно, радио 21 века! С Днем Радио всех! 73!

James_Holden
()

Делать Android приложения на java/kotlin/C++ без Android Studio - реальность?

 

Хочется на кнопку «Make New Project» в студии нажать, а вручную создать каждый файлик и осмысленно написать каждую строку Манифеста, зато поняв что происходит. Да и в качестве IDE на 2021 год vim + LSP + нужный language server + консоль + велосипедные скрипты куда интереснее, чем тормозная монструозная хрень от JetBrains. Хочется рецептов, статей, как собирать, чем лить (adb), текстов про опыт.

UPDATE

Нашёл древнее: https://authmane512.medium.com/how-to-build-an-apk-from-command-line-without-ide-7260e1e22676. Переработал, осмыслил, проапдейтил схемы установки всего. Слегка потрахался с настройкой USB в мобиле, чтобы adb увидело девайс.

Получился такой мануал: http://0x0.st/-Ty0.txt Выполнил его, достиг успеха. Маленький фикс мануала: adb install надо не на hello.apk а на hello.unaligned.apk, который до Align ZIP шага, потому что Aligning ломает цифровую подпись как-то.

Но при установке на живую мобилу (samsung note 9) мобила сказала такое: http://0x0.st/-TyG.jpg ( https://imgur.com/a/VHTpdc8 ). Получилась такая иконка в установленных: http://0x0.st/-Ty5.jpg При старте заявило: http://0x0.st/-Tyh.jpg Но работать не отказалось. Выглядит как-то так: http://0x0.st/-TyC.jpg

Возможно у меня есть эмулятор, но я незнаю. Это всё на живом девайсе. Ось: свежая убунта 20.04 с дефолтным ядром. Интересно заслушать экспертов о ругани мобилы на старину платформы приложения. Возможно вместо «platforms;android-30» надо ставить что-то свежее как-то, но инстяллятор вроде свежее ничего не предлагал, хотя я может быть смотрел жопой. Главная позитивная новость в реальности процесса и в размере занимаемых ресурсов на уровне 100 КБ.

igloev
()

moe v0.2.5.1

 , ,

moe v0.2.5.1
Группа Open Source

Moe — еще один клон текстового редактора vim, написанный на языке Nim.

( читать дальше... )

>>> Подробности (editor.moe)

acroobat
()

Посоветуйте паяльную станцию

 ,

Посоветуйте хорошую паяльную станцию для бытовых нудж. Светодиоды распаять, переключатели для клавиатуры на плате и т.д.

Паять особо не приходилось, но на днях одолжил самый обычный паяльник и, вроде, справился с первого раза припаять провода от блока к LED ленте.

Ввиду появляющегося интереса к схемотехнике, хочу сразу купить что-нибудь хорошее, но без перекосов в сторону чисто профессиональных инструментов.

Заодно можете накидать ссылки на полезные аксессуары типа зажимов, силиконовых ковриков и т.д.

aquadon
()

Не отображаются иконки в polybar, i3

 ,

Не отображаются иконки в polybar. А именно, шрифт awesome. Пакет, конечно же, установлен, в конфиге polybar'а

Font Awesome 5 Free:style=Regular:size=10;2

fc-list | grep «Awesome» выдает:

/usr/share/fonts/fontawesome/fa-solid-900.ttf: Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid
/usr/share/fonts/fontawesome/Font Awesome 5 Free-Solid-900.otf: Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid
/usr/share/fonts/fontawesome/fa-regular-400.ttf: Font Awesome 5 Free,Font Awesome 5 Free Regular:style=Regular
/usr/share/fonts/fontawesome/fa-brands-400.ttf: Font Awesome 5 Brands,Font Awesome 5 Brands Regular:style=Regular
/usr/share/fonts/fontawesome/Font Awesome 5 Brands-Regular-400.otf: Font Awesome 5 Brands,Font Awesome 5 Brands Regular:style=Regular
/usr/share/fonts/fontawesome/Font Awesome 5 Free-Regular-400.otf: Font Awesome 5 Free,Font Awesome 5 Free Regular:style=Regular
Система - Gentoo. Другие шрифты отображает.
polybar -l info
про awesome ничего не говорит, кроме
Dropping unmatched character
, что свидетельствует о том, что шрифт не подхватился

nagatoxxx
()

Минималистичные WM RIP ?

 

Сабж ?

Посмотрел после 10 летнего перерыва - некогда популярный fluxbox RIP, icewm - вроде как жив, но скорее RIP, openbox тоже RIP.

Неужели все так плохо ?

Jopich1
()

Гайдлайн по написанию новостей

 ,

Изначально я планировал обсудить несколько вопросов по оформлению новостей с корректорами и модераторами в частном порядке, но потом решил: А почему бы не сделать тему с гайдлайном? Тут будем писать о том, как оформлять новости. (кроме того, что уже написано)

  • В конце заголовка точка не ставится.
  • Ссылки, не являющиеся основным текстом новости надо оформлять так: «>>> Ссылка». Не стоит использовать ссылки с текстом типа «тут», «здесь», «клик» и пр.
  • Ссылка «Подробности» должна вести на конкретную запись в блоге / сообщение в рассылке, а не на главную. Ссылки должны быть прямыми, материалы по ссылке должны быть доступны без регистрации.
  • Не забывайте использовать списки, спойлеры и тире (набирается как 2 дефиса). Следите за кавычками.
  • Релизы не выходят. Релиз может состояться или быть представлен.
  • Сокращения, такие как «и т. д.», «и т. п.» и инициалы пишутся раздельно.
  • Оформление списков:
    • Если пункты списка относительно простые и короткие (не состоят из нескольких предложений), они начинаются с маленькой буквы, а на конце ставится точка с запятой. В конце самого последнего пункта ставится точка.
    • Если пункты списка достаточно сложные (длинные или состоят из нескольких предложений), начинаются они с большой буквы, а в конце каждого ставится точка.

К обсуждению:

  • Для выделения слов в тексте следует использовать курсив, для подзаголовков — жирное начертание. Хотя лучше, чтобы maxcom добавил в lorcode заголовки, хотя-бы одного уровня.
  • Фразы типа «А также множество других изменений» надо писать как элемент списка или после списка?
  • Можно ли использовать слова «багфикс», «багфикс-релиз»?
  • Обязательное указание деталей программы:
    • предназначение
    • лицензия
    • язык и тулкит
  • Надо ли стараться по возможности писать «GNU/Linux», когда речь идет не о ядре?

Обсуждение приветствуется.

Klymedy
()