LINUX.ORG.RU

Сообщения victor79

 

Какие принципы использовать для реализации GUI на андроиде?

Форум — Development

На каких вещах сделан графический интерфейс программы PlayMarket?

https://drive.google.com/file/d/1yWfUrqZI6mfdrjLg2gQIQPJmpXLXzGu5/view?usp=sharing

Меня интересует, на каких вообще в принципе библиотеках делать графические интерфейсы на kotlin и java? Мне здесь упоминали, что можно прямо на canvas делать. Вот показанный выше интерфейс использует какую-либо открытую библиотеку или прямо на канве рисует свое?

 , ,

victor79
()

Перестало устанавливаться приложение на устройство. На эмуле нормально.

Форум — Development

Делал я приложение. И в процессе деланья, что-то сделал, что оно перестало устанавливаться на устройство. Пишет «Приложение не установлено». Прежняя версия устанавливалась. И на эмулятор по прежнему устанавливается.

Делается на Android Studio, Kotlin.

Была добавлена активность, и изменены разные алгоритмы. Так же добавлял/удалял ресурсы, типа проверял, что как работает.

Что бы такого в нем нажать, что бы заработало?

 ,

victor79
()

Что бы такое маленькое сделать для развития скилов в Kotlin? (UPD)

Форум — Development

Начал изучать котлин, ткнул туда-сюда, все понятно. Думаю теперь, что бы такое маленькое сделать, и что бы работало? Под андроид.

=============================

UPD: Посмотрел я что здесь было предложено, и решил сделать калькулятор. Вот первая версия:

https://github.com/victorprogrammist/Kotlin_MyCalculator

Вот так он сейчас выглядит - простенький и убогонький. Но с формулами:

https://github.com/victorprogrammist/Kotlin_MyCalculator/blob/main/Screenshot.MyCalculator.jpg

https://github.com/victorprogrammist/Kotlin_MyCalculator/blob/main/Screenshot.MyCalculator.Help.jpg

Вот здесь основная логика расчета. Без комментариев.:

https://github.com/victorprogrammist/Kotlin_MyCalculator/blob/main/app/src/main/java/com/iss7gli7/MyCalculator/evaluate.kt

Если кто-то все же захочет его запускать, но влом компилить, то здесь apk под Android 9 (пробовал на 10):

https://github.com/victorprogrammist/Kotlin_MyCalculator/tree/main/apk/release

И если все же начали смотреть что там внутри, то не забудьте оставить критические замечания (кроме того, что он убогонький).

 ,

victor79
()

Android Studio: не работает поиск в скрытых файлах.

Форум — Development

Android Studio, поиск Find in path не ищет среди файлов в скрытых каталогах. Только если сразу искать в одном скрытом каталоге, а так если во всем проекте, то не ищет. Есть где галочка что бы искал?

 

victor79
()

Что за собаки в Kotlin?

Форум — Development

Сунулся я тут изучить kotlin. Поставил Android Studio, загрузил проект из примеров. В примере некоторые строки начинаются с @, и я никак не соображу что это такое:

@Dao
interface PlantDao {
    @Query("SELECT * FROM plants ORDER BY name")
    fun getPlants(): Flow<List<Plant>>

    @Query("SELECT * FROM plants WHERE growZoneNumber = :growZoneNumber ORDER BY name")
    fun getPlantsWithGrowZoneNumber(growZoneNumber: Int): Flow<List<Plant>>

    @Query("SELECT * FROM plants WHERE id = :plantId")
    fun getPlant(plantId: String): Flow<Plant>

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertAll(plants: List<Plant>)
}

https://drive.google.com/file/d/11Ieuk6y5LJ4uoScVl5PR50IqyYUrxaHT/view?usp=sh...

Здесь @Dao, @Query, @Insert - что это за конструкции?

 

victor79
()

удаление файла из git репозитория

Форум — Development

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

Теперь хочу удалить этот файл из репозитория. Нашел в инете следующую комадну:

git filter-branch --index-filter "git rm --cached --ignore-unmatch 'path to file for delete'" --prune-empty HEAD

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

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

 

victor79
()

В с++ как красиво проверить значение на вхождение в список инициализации?

Форум — General

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

Что бы удобно было выполнять подобные или другие условные конструкции?

void my_func(uint a, MyEnum b) {
   assert( a belong {0,1,2,3} && b belong {MyEnum::def1,MyEnum::def2} );
}

==========================================================

По результатам обсуждений пришел к выводу, что оптимальным будет следующий вариант:

template <typename T, typename... Args>
bool belong(const T &t, const Args &... args) {
    return ((t == args) || ...);
}

...
if (belong(a, MyEnum::v1, MyEnum::v2, MyEnum::v3))
   do_something();

Возможен вариант без дополнительных функций:

if (std::set({MyEnum::v1,MyEnum::v2}).count(b))
   do_something();

И еще вариант со списком инициализации, с более наглядным использованием, но возможно чуть медленный чем первый:

template <class T>
bool belong(const T &v, const std::initializer_list<T> &list) {
    auto itr = std::find(list.begin(), list.end(), v);
    return itr != list.end();
}

...
if (belong(a, {MyEnum::v1,MyEnum::v2}))
   do_something();

 

victor79
()

Как посчитать среднюю вероятность от вероятностных вероятностей?

Форум — Science & Engineering

Пусть будет множество процессов, каждый из которых состоит из событий А и Б. Для каждого процесса можно посчитать процент событий А от известной выборки и предположив что это его вероятность, посчитать арифметическую среднюю вероятность для всех процессов. Так же пособирав такие вероятности, можно посчитать возможные границы вероятности процесса А для любого последующего подобного процесса.

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

Как упомянул, для каждого процесса, делается предположение вероятности А по ограниченной выборке.

А если большинство процессов возможно наблюдать маленькое количество раз? Например всего лишь 5 раз, и в нем 4 раза было событие. 4 из 5 это слишком не определенно какая в итоге будет вероятность. Какое распределение вероятностей для выборочной вероятности одного процесса понимание имеется. Так же понятно какие границы у множества вероятностей, если эти вероятности известны, но в ограниченном количестве.

Вопрос, как можно сложить несколько вероятностных вероятностей для расчета средней и границ? Ведь по сути 5 наблюдений, или 100 наблюдений, все равно остается разброс возможной вероятности для одного процесса. Значит даже при сложении вероятностей из 100 или 100500 наблюдений, все равно должен применяться некий коэффициент взвешивания зависимый от количества наблюдений.

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

Есть на эту тему какие либо описания?

 

victor79
()

c++: почему не вызывается конструктор перемещения?

Форум — General

Пусть будет код:


struct A {
    int p = 0;

    A(int v) : p(v) { qDebug() << "constructor by value" << p; }
    A() : p(1) { qDebug() << "constructor empty" << p; }
    ~A() { qDebug() << "destructor" << p; }

    A(A&& o) {
        qDebug() << "constructor move" << p << o.p;
        p = 2;
        o.p = 0;
    }

    void operator=(A&& o) {
        qDebug() << "operator move";
        p = 3;
        o.p = 0;
    }
};

A make1() {
    A a(10);
    return a;
}

...

    qDebug() << "begin";
    A a = make1();
    qDebug() << "end";

Так этот код не вызывает конструктор перемещения или оператор перемещения, его вывод:

begin
constructor by value 10
end
destructor 10

При этом, если я напишу:

struct A {
   A(A&&) = delete;
};

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

Получается, при удалении ругается, но при наличии его не использует. Как заставить его вызывать этот конструктор, что это такое и где про это прочитать?

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

Компилирую на GCC 9, на 8 вроде было так же.

 

victor79
()

Нужно развернуть МНК двух параметров в формулы без матриц, какой прогой это сделать, или есть где готовое?

Форум — Science & Engineering

Нужно развернуть МНК двух параметров в формулы без матриц, какой прогой это сделать и как, или есть где уже готовое?

Т.е. решать с помощью МНК выражение типа ax1 + bx2 + c = y, но без матриц. Нужно потому что у такого типа решения появляется возможность дорасчитывать с новыми данными.

Для случая ax + b = y такие формулы уже давно посчитаны, и можно пользоваться указанным способом.

На бумажке самому не получается, мозгов не хватает.

=======================================================

Как написали в обсуждениях, ответ находится по ссылке: https://math.stackexchange.com/questions/1657030/fit-plane-to-3d-data-using-l...

 ,

victor79
()

Как называется такая сумма вероятностей?

Форум — Science & Engineering

Есть множество значений. Некоторые значения в этом множестве повторяются, ну или большинство. Процент одного из значений в этом множестве составляет k/n, где k это количество этого значения, а n это размер множества. Если количество различных значений m, то формула такая (во избежания разночтений пусть будет С++ код):

double su = 0;

for (int i = 0; i < m; ++i)
    su += pow(static_cast<double>(k[i])/n, 2);

double result = sqrt(su);

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

=========================================

В общем это один из вариантов коэффициента Gini Impurity. Еще вариант такого коэффициента это такая сумма вероятностей Sum( p[i] * (1 - p[i]) ).

 

victor79
()

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

Форум — General

Есть ли такое, что бы совместно обходить скажем два std::map в типовых библиотеках? Что бы использовать вместо такого цикла:


std::map<int,T> a;
std::map<int,V> b;

...

for (auto &itr_a : a) {
    auto itr_b = b.find(itr_a.first);
    
    // обработка itr_a & itr_b (если есть) по одному ключу
    ...
}

for (auto &itr_b : b) {
    if (!a.count(itr_b.first)) continue;
 
    // обработка itr_b которых не было в a
    ...
}

В некоторых случаях нужно что бы все элементы обойти, в некоторых только имеющиеся в обоих контейнерах.

======================================================

По итогам обсуждений посмотрел я функции set_union, set_intersection, и прочие, и реализовал свой вариант, который можно посмотреть здесь:

https://github.com/victorprogrammist/tool_iterate_ordered_containers

 

victor79
()

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

Форум — General

Со времен С++11 есть возможность через SFINAE проверить наличие метода у типа. Но эта проверка громоздка и плохочитаема.

Вопрос появилось ли что либо новое с появлением новых стандартов, в том числе С++20? Или может кто знает, есть ли возможность прежние варианты упаковать в более лаконичный вид, используя вспомогательные классы которые запихнуть подальше в утилитные, оставив на виду только

HasMethod(T, myMethod, Res, Args...)::exists
?

Моя текущая версия проверки выглядит так, в отличие от упоминаемых в инете, она корректна для случаев если тестируемый класс является простым типом.

template<class T>
struct TestHasPack {

    template <class U>
    static void check_args( void(U::*)(Packer&) const );

    template <class U>
    static int detect(...);

    template <class U> static typename
    std::enable_if<
    std::is_same<
    decltype(check_args<U>(&U::pack)),void
    >::value>::type
    detect(T*);

    static constexpr bool exists =
    std::is_same<void,decltype(detect<T>((T*)nullptr))>::value;
};

 ,

victor79
()

c++: что за синтаксис используется в шаблоне класса function<Res(ArgTypes...)>?

Форум — General

Что за синтаксис используется в описании шаблоного класса function<Res(ArgTypes...)>? Про вариативные шаблоны знаю, интересует что за синтаксис со скобками, где про это описано?

============================================

По результатм обсуждения понял, что как пример, такой синтаксис применим для предварительного объявления функций:

using func = void(int, float);
// объявляем две функции `void myFunc1(int, float)` и `void myFunc2(int, float)`
func myFunc1, myFunc2;

 

victor79
()

с++: имеет ли смысл писать inline для методов шаблонного класса?

Форум — General

Имеет ли смысл писать inline для методов шаблонного класса и для шаблонных функций? Это что-либо оптимизирует или меняет для компилятора?

===========================

По результатам обсуждений пришел к выводу, что inline для шаблонных функций и для методов с телом в объявлении класса по сути лишний мусор в коде.

 

victor79
()

При подключении через xfreerdp из Ubuntu к Windows Serv 2008 зависает.

Форум — Desktop

На личном компе у меня Ubuntu 20.04 (на прежней версии было так же), мне по работе нужно подключаться к Windows Server 2008, делаю это через команду:

xfreerdp -themes -wallpaper -menu-anims -aero -window-drag +clipboard /drive:exchange,/xxx /u:xxx /p:xxx /w:1000 /h:680 /bpp:16 /v:xxx:xxx /cert-ignore
И оно регулярно зависает в процессе подключения на этапе «Добро пожаловать» у виндовс - горит эта надпись. Иногда черный экран, иногда «Настройка подключения». Успешные подключения 1 из 5 в среднем. Если подключилось, то работает без каких-либо зависаний. От скорости подключения или провайдера не зависит - пробовалось при разных.

При подключении к этому серверу с других компов из виндовсов никогда не подвисает.

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

В чем проблема или как ее определить?

Вывод в терминале при этом:

[19:51:26:942] [66779:66780] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state
[19:51:26:942] [66779:66780] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[19:51:26:942] [66779:66780] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[19:51:26:942] [66779:66780] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[19:51:26:262] [66779:66780] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[19:51:27:458] [66779:66780] [INFO][com.freerdp.core] - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state
[19:51:27:644] [66779:66780] [INFO][com.freerdp.core] - freerdp_tcp_connect:freerdp_set_last_error_ex resetting error state
[19:51:30:142] [66779:66780] [ERROR][com.winpr.timezone] - Unable to get current timezone rule
[19:51:31:843] [66779:66780] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[19:51:31:843] [66779:66780] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[19:51:31:874] [66779:66780] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[19:51:31:875] [66779:66780] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake backend for rdpsnd
[19:51:31:875] [66779:66786] [INFO][com.freerdp.channels.rdpdr.client] - Loading device service drive [exchange] (static)
[19:51:32:988] [66779:66786] [INFO][com.freerdp.channels.rdpdr.client] - registered device #1: exchange (type=8 id=1)
И при успешном, и при зависшем одинаковый.

 

victor79
()

c++: элемент структуры с признаком packed, передавать по указателю или по ссылке?

Форум — General

На новой версии компилятора GCC мой прежний исходник стал выдавать предупреждение:

tacking addres of packed memeber ...
при взятии адреса на элемент структуры с признаком packed.

Вопрос, как правильно передавать в процедуры упакованные элементы для их модификации?

На взятие адреса он предупреждает, на взятие ссылки он вообще ругается.

 

victor79
()

Ubuntu: как убрать прилипание окон к границам экрана?

Форум — Desktop

Как убрать прилипание окон к границам экрана?

Ubuntu 20.04

 ,

victor79
()

Как включить WiFi? По lspci есть Network Broadcom BCM43228, а в настройка WiFi раздела нет.

Форум — Admin

Поставил Ubuntu 20 на ноут, до этого нужды в WiFi не было, а сейчас ткнулся, а раздела в настройках такого нет. Вроде в прежней установке был раздел рядом с Network и Bluetooth. По команде spci -nn -d 14e4: выдает что Network controller [0280]: Broadcom Inc. and subsidiaries BCM43228 802.11a/b/g/n, и в списке поддерживаемых такое есть. Что нажимать, что бы включилось?

 

victor79
()

Ни один из ProBook не грузится с SSD Plextor PX-128M6S, почему?

Форум — Linux-hardware

Подбирал я тут себе временный ноут из б/у, и ни один из осмотренных HP ProBook не грузился с SSD PX-128M6S. (такой: https://market.yandex.ru/product--tverdotelnyi-nakopitel-plextor-px-128m6s/10777526/spec?track=tabs). Некоторые его видят в списке загрузки, некоторые не отображают. Другие HDD и SSD стартуют, а этот нет говорит нет загрузочного девайса. Вопрос почему? Поскольку хочу прикупить себе новый SSD на замену этому, и хотелось бы избежать подобных оказий.

 ,

victor79
()

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