LINUX.ORG.RU

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

Этот pid чей надо pid. Чем докажешь?

Форум — Talks

Ок, запустил я программу и запомнил её pid чтобы дальше подло делать с ней всякие нехорошести. Но как я могу быть уверен, что когда дело дойдёт до нехорошестей, что под данным pid-ом всё та же программа?
Ну можно, конечно, посмотреть на имя процесса, но это проверит лишь то, что запущена ТАКАЯ ЖЕ программа, но не факт что ТА ЖЕ. Т.е. это может быть другой экземпляр программы, работающий сейчас с другими данными. И трогать его не моги, за его малый pid, малый pid.

Как разруливать переиспользование pid-ов другими программами?

РЕШЕНИЕ:

 env FOO=BAR htop

Вот так можно запустить нужную программу, а потом через /proc/pid/environ проверять она ли это.

 ,

Usruser
()

что сколько должно стоить?

Форум — Talks

как вы считаете как можно адекватно оценивать что сколько может стоить доработать \ разработать \ написать?

 , , ,

smilessss
()

Электроника ПМТ 001

Новости — Open Source
Электроника ПМТ 001
Группа Open Source

Опубликована информация о первом отечественном персональном мобильном телефоне — Электроника ПМТ 001.

Комплект поставки:

  • персональный мобильный телефон;

  • аккумуляторная батарея;

  • кабель питания и синхронизации;

  • руководство пользователя;

  • базовая панель аккумуляторного отсека;

  • панель фотокамеры;

  • комплект ремней.

Изображения: 1, 2, 3.

>>> Руководство пользователя

ОБНОВЛЕНИЕ: 2 апреля автор рассказал, как создавалось это чудо инженерной мысли.

>>> Подробности

 ,

einhander
()

Какой онлайн-кинотеатр используете?

Голосования — Голосования
  1. Не пользуюсь онлайн-кинотеатрами вообще 279 (44%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Kinopoisk HD 141 (22%)

    *****************************************************************************************************************************************************************

  3. Не использую сервисы, предоставляющие лицензионный контент 133 (21%)

    ********************************************************************************************************************************************************

  4. Другой сервис, о лицензионности контента не осведомлён 77 (12%)

    ****************************************************************************************

  5. Netflix 58 (9%)

    ******************************************************************

  6. IVI 48 (8%)

    *******************************************************

  7. Okko 21 (3%)

    ************************

  8. Apple TV+ 20 (3%)

    **********************

  9. Wink 17 (3%)

    *******************

  10. Amazon Prime Video 13 (2%)

    **************

  11. Amediateka 12 (2%)

    *************

  12. Megogo 11 (2%)

    ************

  13. Premier 11 (2%)

    ************

  14. Другой сервис, предоставляющий лицензионный контент 10 (2%)

    ***********

  15. Kion 8 (1%)

    *********

  16. Google Play Movies 8 (1%)

    *********

  17. moreTV 5 (1%)

    *****

Всего голосов: 872, всего проголосовавших: 633

 , ,

grem
()

3d-моделирование это очень прикольно, попробуйте

Форум — Talks

Понадобился мне тут корпус для некоторого прибора. Купил я 3D-принтер и начал разбираться, чего там вообще. Сначала освоил OpenSCAD. Там пишешь модель как программу текстом на DSL. Сразу скажу - не советую. По-мне это тупиковый подход. И это говорит человек, который иконки в SVG рисует в блокноте. Но может кому подойдёт. Я на нём спроектировал одну деталь для сушилки вещей, которая у меня сломалась, распечатал PETG-пластиком. Толщину 3-5 мм поставил со сплошной заливкой. Получилась такая советская неубиваемая штуковина, которая явно переживёт весь мой дом. Вообще эти пластики на удивление очень прочные, что PLA, что PETG. По ощущениям гораздо прочней, чем прочие бытовые пластики. Я думал, будет наоборот. А если 3-5 мм, там уже даже не согнуть.

В общем когда я прикинул, сколько я буду писать текст для моего корпуса, я решил освоить ещё какую-нибудь программу. Взял FreeCAD. Я думал, что там рисуют как в гимпах всяких, от балды. Но оказалось, что компьютерные технологии это прям круто, я вот реально не ожидал. Даже не помню, когда последний раз меня удивляли компьютерные программы. А тут оказалось, что какие-то умные мужики придумали такую штуку, которая называется параметрическое моделирование. Это как на уроке геометрии. Мы рисуем треугольник, задаём ему размеры сторон, причём там как на черчении эти размеры прям стрелочками покажет. И он сам соображает, какие у этого треугольника будут координаты. Вот этого в OpenSCAD и не хватает.

В общем с этим параметрическим моделированием, конечно, тоже не всё так просто и там даже есть определённый порог входа, мне пришлось смотреть какого-то деда на ютубе, чтобы разобраться во всём этом. Но в итоге я разобрался. Кстати в итоге попробовал ещё Fusion 360 и результат сделал в нём, но это не существенно, подходы там одинаковые и во FreeCAD вроде всё плюс-минус есть, просто Fusion мне показался чуть удобней для новичка, но рекламировать не буду, повторюсь, FreeCAD тоже очень крутой и на первый взгляд всё, что надо - умеет, а кое-что лучше (например список ограничений во FreeCAD прям сразу списком есть, а во Fusion я так и не понял, где их посмотреть).

Что по итогу - весь этот процесс меня в какой-то мере затянул и это действительно очень интересно - все эти размеры проставлять, пока деталь не прекратит иметь свободный ход. В процессе разработки своей детальки я распечатал около 10 прототипов, но каждый раз какая-нибудь мелочь ускользала. Сейчас печатаю финальный вариант, надеюсь, он уже действительно будет финальный. Тем, кто с этим всем не знаком, я настоятельно советую при случае попробовать и «поиграться» с этим. Это прям прикольно, почти как программирование в начале изучения.

Вообще весь процесс на самом деле напоминает программирование в какой-то мере. Вся модель это последовательность шагов по её получению, причём каждый шаг проигрывается отдельно, его можно потом редактировать, давать названия каждому шагу и тд. В общем по сути я сначала накидал все эти шаги, а потом по каждому шагу уже подробно делал настройки, размеры, что-то после очередной печати настраивал/подстраивал, в общем реально как программа с кучей процедур, только в визуальном виде. Всё очень строго, все размеры должны быть проставлены или быть вычислимы, никакой ерунды.

Картинка для привлечения внимания: мой корпус

 , ,

Legioner
()

Сборка проекта на плюсах

Форум — Development

В общем, чем сейчас трушно и модно собирать проект на C++ (ну или на C), да еще так чтоб и на Линуксе и на оффтопике?

CMake? Он хоть до сих пор мейнстрим (вроде как), но мой опыт это сплошная попа-боль и, вроде как, тут многие не любит CMake.

Meson? У меня был небольшой проектик, который собирался meson’ом, и все было классно, по крайней мере, мне показалось что это человечнее, чем CMake.

Make? Можно, но придется на винде ставить окружение.

Все-таки из интереса спрашиваю что сейчас используют и что уважается. Может что-то новое сделали что заслуживает внимания?

 

snake266
()

Есть ли настоящий C shell, а не csh?

Форум — Development

Все же csh, несмотря на название как-то не особо похож на Си. Интересно есть ли оболочки более близкие в своей похожести.

 ,

praseodim
()

Первое ознакомительное видео про ноутбук на Арм64 из андроид-тв приставки.

Галерея — Рабочие места

http://sega007.ddns.net:7021/files/noute.mp4

https://youtu.be/MCzPjtTRyMk

Как работает загрузчик в следующих сериях.

>>> Просмотр (4032x2780, 1762 Kb)

 

burato
()

Большой цветной экран на электронных чернилах диагональю 25,3"

Новости — Hardware and Drivers
Группа Hardware and Drivers

В свет выходит один из первых цветных экранов, произведенных по технологии ACeP (Advanced Color ePaper), поддерживающий 32000 цветов (напомним что ранее была доступна лишь глубина цвета в 12 бит или 4096 цветов, 32000 цветов это чуть меньше цветности в 15 бит). Комплект с разрешением 3200x1800 при диагонали 25,3 дюймов стоит 1500 долларов без налогов и требует наличия Raspberry Pi 3.

https://shopkits.eink.com/product/luvia-with-25-3%cb%9d-acep-display-ac253tt1-%e3%80%90glass%e3%80%91/

Для работы также требуется управляющая плата Luvia (Tcon board) w/ Mini-LVDS FFC стоимостью 500 долларов без налогов.

https://shopkits.eink.com/product/luvia-driving-board/

Но если верить фото товара, пока что по предзаказу на панель действует скидка 35%.

Также можно понаблюдать демонстрацию работы матрицы

https://www.youtube.com/embed/W1JaFAUa2Ys

 , ,

anonymous
()

Быстрый Set на C

Форум — Development

Мне нужна структура данных похожая на Set. Она должна обладать следующими свойствами:

- В ней хранятся числа от 0 до 4095.

- В неё можно добавлять числа, при этом повторное добавление того же самого числа должно игнорироваться (то есть поддерживаться уникальность элементов). Удаление одиночных элементов не обязательно, нужна только операция полной очистки.

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

Эта структура должна работать быстро, потому что будет много-много раз в секунду цикл заполнение-итерирование-очистка, то есть вставка за O(1), итерирование по всем элементам за O(N), очистка желательно за O(1).

На первый взгляд приходят в голову битовые карты (ведь множество значений элементов небольшое), однако они, как мне кажется, не проходят по условию «быстрое итерирование и очистка». Есть ли какие-то ещё варианты? Подойдёт как алгоритм, так и готовая plain C библиотека. Или на таком количестве элементов все альтернативы будут иметь такую же производительность?

 ,

KivApple
()

Чем пользуетесь из F-Droid?

Форум — Mobile

Собственно сабж. Третий андрофон. В первый раз ставил из него судоку. Во второй: блокнот. В этот раз: «Транзистор» для прослушивания радио.

А кто чем ещё пользуется?

 ,

AlexVR
()

Платные сервисы просмотра видеоконтента

Форум — Talks

У кого есть опыт использования подписок на различных сервисах? Какие у каких сервисов плюсы и минусы? Ограничения на количество устройств и совместимость с браузерами настольных linux систем? Если с последним повсеместные проблемы?

Update:
Пока остановился на кинопоиске, самой дешёвой подписке за 200 р. на 2 устройства. Воспроизведение в браузере на стационарнике пока не проверял, т.к. некогда.

Некоторые фильмы и сериалы можно смотреть только онлайн, что видно на странице в инфе о фильме/сериале. Но и для просмотра в дороге, где связь хромает или трафик не резиновый, контента хватает. Пока почти всё, что смотрел имеет англоязычную дорожку и субтитры на англ и русск.

 

grem
()

Немонстроузный web-проигрыватель бесконечного DASH потока с IP камеры.

Форум — Web-development

Все говнобраузеры до сих пор не умеют в RTSP и даже не умеют нормально проигрывать бесконечный поток. Какое-то позорище натуральное. Бесконечный поток с камеры, например, поставленный на паузу вообще ни разу не должен продолжаться с той самой секунды когда его остановили. Внезапно. А должен продолжаться при снятии с паузы с самого последнего принятого keyframe. И браузеру нахер не нужно сжирать всю память пытаясь сохранить всё, что было передано с момента нажатия на паузу. Но, видимо, для браузерописцев эти элементарные вещи совершенно недоступны для понимания, и в результате реализация HTMLVideoElement’а, что в хроме, что в фаерфоксе является полным говном.

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

Оказалось что самый маленький плеер умеющий проигрывать multiple-file-DASH видео (openplayer.js) весит 167 килобайт, сцуко! И это минифицированный вариант! Чему там можно столько весить я нихрена не понял. Про «референсный» dash.js я вообще молчу. Это лютейший звездец размером больше полмегабайта в минифицированном виде. Мелкософтовский пример жабоскриптного DASH-плеера заточен на single-file-DASH. А ffmpeg c -single_file 1 пишет поток на диск бесконечно, засирая диск далеко не всегда нужным видеомусором.

Разумеется, как всегда, когда дело касается вебни, чтобы решить элементарную проблему, вместо того, чтобы взять какой-нибудь эталонный микроскопический плеер, пришлось быстренько изобрести велосипед. Разумеется, всё легко влезло в смешные 5 килобайт, причём в неминифицированном виде.

Вот велосипед:

Жабоскрипт:

'use strict'

function Dash( id )
{
    var _ = this;
    _.v = document.getElementById( id );
    var url = _.v.src;
    _.v.src = undefined;
    var slash = url.lastIndexOf("/");
    _.path = url.substring( 0, slash + 1 );
    _.mpd = url.substring( slash + 1 );
    _.init = true;
    _.xhr = [];
    _.load_mpd( false );
    _.video_update  = function() { _._video_update(); };
    _.video_updated = function() { _._video_updated(); };
    _.video_updating = false;

    _.v.addEventListener( 'click', _.toggle.bind(_), false );

    _.v.addEventListener( 'pause', function ()
    {
        console.log( 'paused' );
        this.removeEventListener( 'timeupdate', _.video_update );
        if( _.videoSource.updating ) _.videoSource.abort();
        _.xhr.forEach( function ( xhr ) { xhr.abort(); } );
    }, false);

    _.v.addEventListener( 'play', function()
    {
        console.log( 'playing' ); 
        this.addEventListener( 'timeupdate', _.video_update, false );
    }, false);

    _.v.addEventListener( 'ended', function()
    {
        console.log( 'ended' );
        this.removeEventListener( 'timeupdate', _.video_update );
    }, false);

    _.v.addEventListener( 'error', function(e) { console.log( 'video error: ' + e ); }, false );
    _.v.addEventListener( 'emptied', function() { console.log( 'emptied' ); }, false );
}

Dash.prototype.play = function() { this.load_mpd( true ); }
Dash.prototype.stop = function() { this.v.pause(); }
Dash.prototype.toggle = function()
{
    if( this.v.paused == true ) this.play();
    else                        this.stop();
}

Dash.prototype.mpd_parse = function( data )
{
    var _ = this, e, g;
    e = data.querySelectorAll("Representation")[0];
    g = e.getAttribute.bind( e );
    _.id        = g( 'id' );
    _.mimetype  = g( 'mimeType' );
    _.codecs    = g( 'codecs' );
    _.width     = g( 'width' );
    _.height    = g( 'height' );

    e = data.querySelectorAll( 'SegmentTemplate' )[0];
    g = e.getAttribute.bind( e );
    _.timescale = g( 'timescale' );
    _.ini       = g( 'initialization' );
    _.seg       = g( 'media' );
    _.start     = g( 'startNumber' );

    _.ini = _.ini.replace( '$RepresentationID$', _.id );
    _.seg = _.seg.replace( '$RepresentationID$', _.id );

    _.duration = [];

    data.querySelectorAll("S").forEach( function( v, i )
    {
        _.duration[i] = v.getAttribute( 'd' ) / _.timescale;
        if( i == 0 ) _.ts = v.getAttribute( 't' );
    } );
}

Dash.prototype.load_mpd = function( start )
{
    var _ = this;
    _.xhr[0] = new XMLHttpRequest();
    _.xhr[0].onreadystatechange = function ()
    {
        if( this.readyState != this.DONE ) return;
        if( this.status != 200 ) return;

        var parser = new DOMParser();
        var xmlData = parser.parseFromString( this.response, 'text/xml' );

        _.mpd_parse( xmlData );

        if( start )
        {
            _.video_updating = false;
            _.num = parseInt( _.start ) + 1;
            _.ts_current = _.v.currentTime;
            _.load_seg();
        }

        if( _.init )
        {
            _.v.width  = _.width;
            _.v.height = _.height;
            _.mediaSource = new window.MediaSource();
            _.mediaSource.addEventListener( 'sourceopen', function (e) {
                _.videoSource = _.mediaSource.addSourceBuffer( _.mimetype + '; codecs="' + _.codecs + '"' );
                _.videoSource.mode = 'sequence';
                _.videoSource.addEventListener( 'updateend', _.video_updated, false );
                _.load_ini();
            }, false );
            _.v.src = URL.createObjectURL( _.mediaSource );
        }
    }
    _.xhr[0].open( 'GET', _.path + _.mpd );
    _.xhr[0].send();
}

Dash.prototype.append = function( f )
{
    var _ = this;
    _.xhr[1] = new XMLHttpRequest();
    _.xhr[1].responseType = 'arraybuffer';
    _.xhr[1].onreadystatechange = function ()
    {
        if( this.readyState != this.DONE ) return;
        if( this.status != 200 ) return;
        _.videoSource.appendBuffer( new Uint8Array( this.response ) );
    };
    _.xhr[1].open( 'GET', _.path + f );
    _.xhr[1].send();
}

Dash.prototype.load_ini = function()
{
    this.append( this.ini );
}

Dash.prototype.load_seg = function()
{
    var n = this.num.toString();
    if( n.length < 5 ) n = ( '0000' + n ).slice( -5 );
    this.append( this.seg.replace( '$Number%05d$', n ) );
}

Dash.prototype._video_update = function()
{
    var _ = this;
    if( _.video_updating ) return;
    var i = _.num - _.start;
    if( _.v.currentTime >= _.ts_current - _.duration[i] * 0.5 )
    {
        _.video_updating = true;
        _.load_seg();
    }
}

Dash.prototype._video_updated = function()
{
    var _ = this;

    if( _.init ) { _.init = false; return; }

    if( _.v.paused == true )
    {
        _.v.currentTime = _.ts_current;
        _.v.play();
    }
    _.ts_current += _.duration[ _.num - _.start ];
    _.num++;
    if( _.num - _.start >= _.duration.length - 1 ) _.load_mpd( false );
    _.video_updating = false;
}

Страничка:

<HTML>
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" content="no-cache">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8">
<SCRIPT src="tiny-dash.js" type="text/javascript"></SCRIPT>
<SCRIPT>
var dash;
window.addEventListener( 'load', function() { dash = new Dash( 'dashvideo' ); }, false );
</SCRIPT>
<TITLE>Camera stream</TITLE>
</HEAD>
<BODY bgcolor="#000000" text="#c0c0c0">
<VIDEO id="dashvideo" src="media/manifest.mpd" preload="none">No video available</video>
</DIV>
</BODY>

На серваке из-под nobody запустить

#!/bin/sh

stream="rtsp://host:port/ch0_264"
target="/где.там.страничка.лежит/media/manifest.mpd"

/usr/bin/ffmpeg \
-probesize 32 \
-loglevel quiet \
-i "${stream}" \
-an \
-c:v copy \
-f dash \
-window_size 4 \
-extra_window_size 1 \
-min_seg_duration 2000000 \
-remove_at_exit 1 \
"${target}"

В /где.там.страничка.лежит/media лучше примонтировать tmpfs - и шустро, и диск не трогает.

Длительность сегмента и размер окна можно подкрутить, если канал убогий.

Для руления плеером из жабоскрипта есть методы Dash.play(), Dash.pause() и Dash.toggle(). Всякие кнопки и украшательства добавляются по вкусу.

Работает в хроме и фаерфоксе. Задержка, разумеется есть, но без неё, увы, при воспроизведении DASH не обойтись.

Решение отлично подходит для камер, которые нафиг не нужно куда-то записывать, но которые хотят смотреть много (и даже очень много) людей одновременно. HTTP сервер всего лишь раздаёт не особо большие файлики из tmpfs, так что нагрузка минимальна.

В принципе, это всё несложно использовать для организации self-hosted zoom при минимальной доработке - нужно только организовать передачу потоков с вебок на сервер (да хоть через netcat), а там их так же раскладывать в сегменты ffmpeg’ом.

Лицензия - WTFPL

ЗЫ: Хотел в теги добавить ещё «копрофилию» но ограничение на 5 тегов испортило всю малину.

ЗЗЫ: Это, кстати, эксклюзив специально для ЛОР. :) Нигде больше публиковать это я не собираюсь.

 , , , ,

Stanson
()

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

Новости — Hardware and Drivers
Группа Hardware and Drivers

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

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

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

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

>>> Подробности

 , ,

cvs-255
()

MidDaily Commander - форк форк файлового менеджера mc

Форум — Talks

Поскольку команда mc не хочет делать у себя поддержку http/https из коробки, в будущем намеревается выпилить замечательный внутренний редактор mcedit, завернуло мой багрепорт только потому что он был на русском языке, а сейчас вообще отключили багтрекер на гитхабе, игнорят пусть и не дооформленные, но полезные патчи от других пользователей я решил сделать форк.

Сам я программировать не умею, да не очень хорошо знаю git, так же не читал документацию к mc, по этому пока кодить сам не буду, а жду ваших коммитов, которые буду в меру своего разумения просматривать и принимать.
Ну и поскольку я неуч, то всё же хочу попросить при присылании коммитов давать комментарии не только на английском, но и на русском языке(ну не знаю я этот язык).
Ну или хотябы только на русском, чтобы хотябы я понимал что делает присланный код(програмировать то я не умею, по этому и коммит без комментариев нормально рассмотреть не смогу)

Ссылка на репозитарий https://github.com/MidDailyCommander/mdc

П.С. В репозитарии я ссылку на эту тему дам ссылку на сайт проекта, по этому просьба тему не удалять и в архив не помещать.

Перемещено beastie из development

 , mdc, middaily,

torvn77
()

Компания Cloudflare представила WARP для Linux

Новости — Проприетарное ПО
Группа Проприетарное ПО

WARP представляет собой cli-приложение, объединяющее в себе DNS-резолвер (использующий сервер 1.1.1.1), VPN и прокси для перенаправления трафика через инфраструктуру CDN Cloudflare. В качестве протокола VPN используется BoringTun – реализация WireGuard на Rust, целиком работающая в пространстве пользователя.

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

Также можно включить только DNS over HTTPS или прокси.

Готовые пакеты предоставлены для Ubuntu (16.04, 20.04), Debian (9, 10, 11), Red Hat Enterprise Linux (7, 8) и CentOS.

>>> Подробности

 , ,

LikeABoss
()

Наконец-то кибер-маргиналы получили признание!

Форум — Talks

На последней презентации Apple - WWDC 2021(07.06) было представлено много чего, что до сей поры считалось атрибутами всяких линуксоидов, анонимов, хакеров и просто параноиков, а именно:

  1. Сокрытие IP адреса в почте, специальный прокси при открытии вложений в письмо, т.е. обратное соединение с хостящим картинку письма сервером будет через прослойку.
  2. Спуфинг IP адреса встроенный в браузер, сокрытие метаданных при посещении сайтов.
  3. Новая фича называющаяся кажется Privacy Relay, теперь пользователи будут подключаться к сайтам не напрямую и даже не через прокси, а через сеть нод так, что даже сам хозяин устройства(Apple есстественно) не смогут знать куда подключён человек, ничего не напоминает? Tor Network.
  4. Автогенерация одноразовых почтовых адресов, то самое, что многие из нас делали давным давно, чтобы изолировать основную почту от спама и защититься от слежки.

Любопытно, всего 2-3 года назад люди занимающиеся этими манипуляциями были бы названы нехорошими, пиратами, параноиками и террористами, а теперь всё это стало стандартом о котором и говорить нечего. Остается только гадать, что ещё, из того, чем мы сегодня заморачиваемся, перекочует в отраслевой стандарт.

 , ,

cheetah111v
()

Софт для набрасывания интерфейсов, включая мобильные

Форум — Development

Есть такое? Вот чтобы просто запустить программулину, накидать на форму кнопок (на активность виджетов) и получить набор «скринов» экранов будущего приложения?

Нужно под андроид/яблоось в первую очередь, хотя не помешало бы и под десктоп.

Пришел к выводу, что писать интерфейс на ходу - это путь к тем самым «интерфейсам от программистов», которые без бутылки или такого же программиста не понять.

 , ,

Zhbert
()

Кто у нас тут с ryzen 5 3600?

Форум — Linux-hardware

Всем привет. Чёрт меня дёрнулся апгрейднуть десктоп, поставил себе 5 3600 на мать asrock b450 pro4. Работало-работало и фризануло. И так несколько раз, просто наглухо - ни sysrq, ни ctrl+alt+f1 - ничего не работает. Картинка на мониторах как была - так и осталась. Поспрашивал людей - сказали память(а у меня 4 планки), типа из-за частоты зависает. Ок, снизил частоту до 1933 вроде мгц. То же самое. Убираю 1 планку новую(на 3 раньше работало на athlon 200ge) - зависания. Думаю ну ок, может бп не тянет. Взял новый - поставил, всё то же самое. Фризит. Заметил что фризит когда активно на диски начинаю писать. Смотрю - а у меня на матери около чипсета и сата-портов какие-то разводы и окислилось что-то. Ну, подумал, кранты. Взял другую мать на 550 чипсете, сегодня поставил. Ну и что думаете? - всё опять зависло. Но проработало дольше, под полной нагрузкой на диски. Ну и тут уже ничего не осталось кроме проца(и харда нового, на самом деле, но я очень уж сомневаюсь что из-за харда так может вешаться система), полез гуглить - нашёл кучу ссылок ведущих на реддит, где люди жалуются на фризы при работе на 5 3600, ровно такие же как у меня, и чем лечить - непонятно.

Конфиг - gigabyte aorus elite v2, ryzen 5 3600, 4 планки памяти по 8гб какой-то амдшной, несколько ссд и пара хардов. Блок питания 700 ватт. Видео - gt 710. Драйвера нвидии 460.67 из buster-backports, ядро 5.10.0-0.bpo.5-amd64 тоже из buster-backports.

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

PS На athlon 200ge всё работало прекрасно годами, на этой матери и на старом бп. И на 3 планках памяти.

 , , ,

proveryam
()

Какие технологии беспроводной передачи рассматривать для DIY IoT?

Форум — Talks

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

  • для расстояний 1-3м прямой видимости
  • для расстояний 10-15м, с препятствиями?

Есть очевидный Zigbee. Еще есть Bluetooth LE (удобно, что он уже есть во всех ноутбуках и смартфонах). Что-то еще?

Еще интересует беспроводная передача электричества на 1-3м, если это реально сделать на коленке.

 , , ,

aquadon
()