Re[6]: Каких программ вам не хватает?
От: temnik Россия  
Дата: 07.01.22 08:39
Оценка:
S>Да, действительно, если эту работу свалить на ОС, можно сильно сэкономить.

Установите PuntoSwitcher и не страдайте ерундой
Лучший хостинг от 4 евро, VPS от 6 евро, разные локации, оплата картами без проблем, скидки до 20%.
50 бесплатных смс
Re[7]: Каких программ вам не хватает?
От: Shtole  
Дата: 07.01.22 08:52
Оценка:
Здравствуйте, temnik, Вы писали:

S>>Да, действительно, если эту работу свалить на ОС, можно сильно сэкономить.

T>Установите PuntoSwitcher и не страдайте ерундой

Какой дурак, интересно, поставит себе добровольно PuntoSwitcher, который с поличным поймали на отправке логов в Яндекс?
Do you want to develop an app?
Re[7]: Каких программ вам не хватает?
От: kov_serg Россия  
Дата: 07.01.22 10:28
Оценка:
Здравствуйте, autopsist, Вы писали:

A>>>Поэтому файл реестра (на пример NTUSER) копируется на компьютер, который может загрузиться и восстанавливается там.

A>A>>Ну или на том же компе, путем загрузки с другого носителя.

_>>Обычно приносят ноут который просто не грузится, и файлы реестра никто естественно не копировал. В таких ситуациях быстрее и дешевле винду переставить чем восстанавливать средствами винды. Хотя достаточно привести реестр в божеский вид и всё снова работает.


A>Что мешает загрузиться с флэшки и восстановить реестр предложенной программой?

Вчера хотел попробовать. Но не срослось. Оказался полудохлый ssd. Пришлось заменить и накатить всё с нуля. Вот и скажите мне что мешает винде иметь средства диагностики оборудования?

n+1) Так что не хватает uefi набора для диагностики железа.
Re[4]: Каких программ вам не хватает?
От: m2l  
Дата: 07.01.22 12:03
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

m2l>>Ctrl+P > Save as PDF


ЕМ>Думаю, под "оформлением" понимался тот же HTML, но чистый, без мусора.


Это навроде Ctrl+U (View page source) > Ctrl+P > Save as PDF ?
Если нет, то я наверное неправильно понимаю вопрос....

m2l>>STDU Viewer

ЕМ>Только для просмотра — хорош, а вот если нужно скопировать текст, отличный от ANSI — сразу ужас, ибо они как-то ухитрились обойтись без Unicode.
Сталкивался, но чаще документ такой, а не STDU фейлится. Вот, даже перепроверил в версии 1.6.361. Но конкретно для PDF мне последнее время нравится работа MS Edge — он их ощутимо шустрей переваривает другого ПО, и в некоторых вещах кажется удобней (вроде скрывающейся панели оглавления — когда у тебя PDF-ки и с ним и без него это просто спасение).
Re[7]: Каких программ вам не хватает?
От: m2l  
Дата: 07.01.22 12:09
Оценка:
Здравствуйте, temnik, Вы писали:

T>Установите PuntoSwitcher и не страдайте ерундой


А где у него в настройках время до переключения на дефолтный язык?

Мы же конкретный кейс обсуждаем:

_>6. переключения с любой раскладки клавиатуры в случае бездействия в течении некоторого времени обратно на латинскую.

Re[5]: Каких программ вам не хватает?
От: MaxRos  
Дата: 07.01.22 12:09
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Три строчки + main() + include <windows.h>


Зачем так париться, когда есть AutoHotkey. Там скриптами можно что угодно соорудить. В том числе idle timer.
Re[3]: Каких программ вам не хватает?
От: TailWind  
Дата: 07.01.22 13:20
Оценка:
Про генератор инвойсов:

M>У меня почти такое есть. Правда, нет возможности включать условно фрагменты, но это можно допилить. И если что-то встречается в разных падежах, то сорян, но надо самому все варианты забить. Шаблоны с оформлением создаются в формате RTF. Макросы вида $(BlaBla). Описания (читаемые названия) макросов хранятся а) для наиболее общих случаев — в самой проге в текстовом файлике рядом, б) в свойствах RTF-шаблона, можно было править в ворде, вроде в меню "Файл" пункт типа "Свойства документа", но точно не помню.


Вдохновился вашей идеей и тоже сделал

Но шаблон на html
Результат тоже html

Можно делать #include, чтобы большие договоры на части разбить
Можно делать #style, чтобы указать из какого файла взять шрифты и для Word'a настройки

Константы хранятся в текстовом файле
В теле html указываются так: [дата договора]

Word умеет открывать такие html файлы
Для него там даже можно указать margins страницы. И чтобы он сразу открывал вид — разметка страницы
Дальше можно на печать отправлять

С rtf не заладилось
Он русское [поле] очень сильно коверкает. Сложно найти и заменить
И генерировать его сложно. Формат переусложнённый
Отредактировано 07.01.2022 13:22 TailWind . Предыдущая версия . Еще …
Отредактировано 07.01.2022 13:21 TailWind . Предыдущая версия .
Отредактировано 07.01.2022 13:21 TailWind . Предыдущая версия .
Re[5]: Каких программ вам не хватает?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.01.22 13:29
Оценка:
Здравствуйте, m2l, Вы писали:

ЕМ>>Думаю, под "оформлением" понимался тот же HTML, но чистый, без мусора.


m2l>Это навроде Ctrl+U (View page source) > Ctrl+P > Save as PDF ?


На мой взгляд, это текст с атрибутами шрифтов, абзацев и прочего форматирования, но без баннеров и прочей шелухи.

m2l>чаще документ такой, а не STDU фейлится.


Мне попадалось немало документов на русском, немецком или французском, из которых в STDU было невозможно нормально скопировать фразу, а Chrome или Firefox копировали нормально.
Re[4]: Каких программ вам не хватает?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.01.22 13:41
Оценка: :)
Здравствуйте, TailWind, Вы писали:

TW>Можно делать #include, чтобы большие договоры на части разбить

TW>Можно делать #style, чтобы указать из какого файла взять шрифты и для Word'a настройки

Как все сложно. Надо вот так.
Re[4]: Каких программ вам не хватает?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.01.22 13:53
Оценка:
Здравствуйте, TailWind, Вы писали:


M>>У меня почти такое есть. Правда, нет возможности включать условно фрагменты, но это можно допилить. И если что-то встречается в разных падежах, то сорян, но надо самому все варианты забить. Шаблоны с оформлением создаются в формате RTF. Макросы вида $(BlaBla). Описания (читаемые названия) макросов хранятся а) для наиболее общих случаев — в самой проге в текстовом файлике рядом, б) в свойствах RTF-шаблона, можно было править в ворде, вроде в меню "Файл" пункт типа "Свойства документа", но точно не помню.


TW>Вдохновился вашей идеей и тоже сделал


TW>Но шаблон на html

TW>Результат тоже html

У меня вообще любой текстовый формат поддерживается. RTF — тоже текстовый, но pretty printable и wysiwyg. Из поддержки RTF я делал только кодирование кириллицы и, ЕМНИП, что-то по поводу поддержки таблиц — что бы можно было таблицы генерить, там от маркера нужно было назад отыскать начало строки таблицы — маркер я помещал в первую ячейку строки. И для HTML тоже что-то такое было сделало.


TW>С rtf не заладилось

TW>Он русское [поле] очень сильно коверкает. Сложно найти и заменить

Не коверкает, а просто кодирует. Но всё довольно тривиально


TW>И генерировать его сложно. Формат переусложнённый


Я и генерил его, нет особых проблем. Но вообще для той тулзы шаблоны я в ворде подготавливал, со всем нужным оформлением
Маньяк Робокряк колесит по городу
Re[6]: Каких программ вам не хватает?
От: m2l  
Дата: 07.01.22 16:02
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

m2l>>Это навроде Ctrl+U (View page source) > Ctrl+P > Save as PDF ?


ЕМ>На мой взгляд, это текст с атрибутами шрифтов, абзацев и прочего форматирования, но без баннеров и прочей шелухи.


Ну печать в PDF с включенным uBlock так и делает вроде. Можно ещё убрать флаг Background graphics. На худой конец тыкаешь в ненужный тебе раздел и через Developer Tools удаляешь эту ветку DOM дерева.
Re[4]: Каких программ вам не хватает?
От: kov_serg Россия  
Дата: 07.01.22 21:15
Оценка: 9 (1)
Здравствуйте, Shtole, Вы писали:

S>Здравствуйте, m2l, Вы писали:


_>>>6. переключения с любой раскладки клавиатуры в случае бездействия в течении некоторого времени обратно на латинскую.

m2l>>Это делается программой буквально в 10 строк, через штатный вывоз API прогой установленной в качестве заставки. Ну реально как-бы минут 40 на разработку.

S>Ну, не 10. Побольше. Бездействие как определять будем? Из LL-хуков таймер перезапускаем? А ещё плюс сам код переключения.


S>Но за пару часов наколхозить можно.


  Наколхозил
// ubuntu-kbd-layback.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <termios.h>
#include <gio/gio.h>    // pkg-config --cflags --libs gio-2.0
#include <X11/Xlib.h>   // pkg-config --cflags --libs x11
#include <X11/XKBlib.h>

static int gshell_run_script(const gchar *script,gchar **result) {
    enum { timeout=500 }; GDBusConnection *con=0; GVariantBuilder builder[1];
    GVariant *vres=0,*vscript=0,*param=0; gboolean success; int rc=0;
    const gchar *bus_name="org.gnome.Shell", *object_path="/org/gnome/Shell",
          *interface_name="org.gnome.Shell", *method_name="Eval";
    con=g_bus_get_sync(G_BUS_TYPE_SESSION,0,0); if (!con) { rc=1; goto leave; }
    g_variant_builder_init(builder,G_VARIANT_TYPE_TUPLE);
    vscript=g_variant_parse(0,script,0,0,0); if (!vscript) { rc=2;goto leave; }
    g_variant_builder_add_value(builder,vscript);
    param=g_variant_builder_end(builder); if (!param) { rc=3; goto leave; }
    vres=g_dbus_connection_call_sync(con,bus_name,object_path,interface_name,
        method_name,param,0,G_DBUS_CALL_FLAGS_NONE,timeout,0,0);
    if (!vres) { rc=4; goto leave; }
    if (!g_variant_is_of_type(vres,G_VARIANT_TYPE("(bs)"))) {rc=5;goto leave;}
    g_variant_get(vres,"(bs)",&success,result);
    if (!success ) { rc=6; goto leave; }
leave:
    if (rc!=0) { g_free(*result); *result=0; }
    if (vres) { g_variant_unref(vres); vres=0; }
    if (vscript) { g_variant_unref(vscript); vscript=0; }
    if (con) { g_object_unref(con); con=0; }
    return rc;
}

static int kbd_get_layout_index(int index_if_error) {
    gchar *result=0; int res=index_if_error,ret;
    const char* js="\"imports.ui.status.keyboard.getInputSourceManager()"
        ".currentSource.index\"";
    ret=gshell_run_script(js,&result);
    if (result) { res=atoi(result); g_free(result); }
    return res;
}

static int kbd_set_layout_index(int index) {
    const char* jst="\"imports.ui.status.keyboard.getInputSourceManager()"
        ".inputSources[%d].activate()\"";
    enum { js_size=100 }; char js[js_size]; sprintf(js,jst,index);
    return gshell_run_script(js,0);
}

static int kbd_get_layout_index_old(int index_if_error) {
    int rc=index_if_error; GSettings *gs; GVariant *v;
    gs=g_settings_new("org.gnome.desktop.input-sources");
    if (gs) {
        rc=g_settings_get_uint(gs,"current");
        g_object_unref(gs);
    }
    return rc;
}

static int kbd_set_layout_index_old(int index) {
    int rc; GSettings *gs;
    gs=g_settings_new("org.gnome.desktop.input-sources"); if (!gs) return 1;
    rc=g_settings_set_uint(gs,"current",index);
    g_object_unref(gs);
    g_settings_sync();
    return rc ? 0 : 2;
}

enum { kbm_map_size=32 };
typedef struct KbdMonitor {
    Display *display; XkbDescRec* kbd;
    char map[2][kbm_map_size];
    int tmr1,tmr1_en,tmr1_limit;
    int quit;
    int (*set_layout)(int idx);
    int (*get_layout)(int idx_if_err);
} KbdMonitor;

static void kbmon_done(KbdMonitor* p) {
    if (p->kbd) { XkbFreeKeyboard(p->kbd,0,True); p->kbd=0; }
    if (p->display) { XCloseDisplay(p->display); p->display=0; }
    p->quit=1;
}

static int kbmon_init(KbdMonitor* p) {
    int rc=0;
    Atom sym_name;char *layoutString;
    p->kbd=0;
    p->tmr1=0;
    p->tmr1_en=1;
    p->tmr1_limit=50; // 5sec
    p->quit=0;
    p->set_layout=kbd_set_layout_index;
    p->get_layout=kbd_get_layout_index;
    p->display=XOpenDisplay(0); if (!p->display) { rc=1; goto leave; }
    p->kbd=XkbAllocKeyboard(); if (!p->kbd) { rc=2; goto leave; }
    if (kbd_get_layout_index(-1)<0) {
        p->set_layout=kbd_set_layout_index_old;
        p->get_layout=kbd_get_layout_index_old;
    }
    XQueryKeymap(p->display,p->map[1]);
leave:
    if (rc) kbmon_done(p);
    return rc;
}

static void kbmon_step(KbdMonitor* p) {
    int idx;
    memcpy(p->map[0],p->map[1],kbm_map_size);
    XQueryKeymap(p->display,p->map[1]);
    if (p->tmr1_en) p->tmr1++;
    if (memcmp(p->map[0],p->map[1],kbm_map_size)!=0) {
        p->tmr1=0; p->tmr1_en=1; 
    }
    if (p->map[1][15]&128) { p->quit=1; } // pause key
    if (p->tmr1_en && p->tmr1>=p->tmr1_limit) { p->tmr1_en=0;
        idx=p->get_layout(0);
        if (idx) {
            printf("set default layout\n");
            p->set_layout(0);
        } else { 
            p->tmr1=0; p->tmr1_en=1; 
        }
    }
}

static void set_echo(int en) {
    struct termios term;
    tcgetattr(fileno(stdin), &term);
    if (en) term.c_lflag |= ECHO;
    else term.c_lflag &= ~ECHO;
    tcsetattr(fileno(stdin), 0, &term);
}

int main(int argc,char** argv) {
    KbdMonitor km[1];int rc;

    rc=kbmon_init(km); if (rc) return rc;
    if (argc>1) {
        int x=atoi(argv[1]);
        if (x>0 && x<=3600) km->tmr1_limit=x*10;
        else { fprintf(stderr,"invalid value\n"); return -1; }
    }
    printf("start monitoring keyboard tau=%.1fs - press PAUSE to exit\n",
        km->tmr1_limit*0.1);
    set_echo(0);
    while(!km->quit) {
        kbmon_step(km);
        usleep(100000);
    }
    set_echo(1);
    kbmon_done(km);
    printf("stop monitoring keyboard\n");
    return 0;
}

gcc -o ubuntu-kbd-layback ubuntu-kbd-layback.c `pkg-config --cflags --libs gio-2.0` `pkg-config --cflags --libs x11` && ./ubuntu-kbd-layback
Re[5]: Каких программ вам не хватает?
От: Shtole  
Дата: 07.01.22 21:17
Оценка: :)
Здравствуйте, kov_serg, Вы писали:

_>Наколхозил


Гранаты у вас не той системы!
Do you want to develop an app?
Re[8]: Каких программ вам не хватает?
От: temnik Россия  
Дата: 09.01.22 19:21
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Здравствуйте, temnik, Вы писали:


T>>Установите PuntoSwitcher и не страдайте ерундой


m2l>А где у него в настройках время до переключения на дефолтный язык?


m2l>Мы же конкретный кейс обсуждаем:

m2l>

_>>6. переключения с любой раскладки клавиатуры в случае бездействия в течении некоторого времени обратно на латинскую.


Ну, кейс-то сам по себе бредовый. Явно же есть какая-то дальнейшая цель в таком переключении. Если она есть, то надо ее и обсуждать, тогда будет проще подобрать решение.
Лучший хостинг от 4 евро, VPS от 6 евро, разные локации, оплата картами без проблем, скидки до 20%.
50 бесплатных смс
Re[9]: Каких программ вам не хватает?
От: kov_serg Россия  
Дата: 09.01.22 19:49
Оценка:
Здравствуйте, temnik, Вы писали:

_>>>6. переключения с любой раскладки клавиатуры в случае бездействия в течении некоторого времени обратно на латинскую.

T>Ну, кейс-то сам по себе бредовый. Явно же есть какая-то дальнейшая цель в таком переключении. Если она есть, то надо ее и обсуждать, тогда будет проще подобрать решение.
Отвлеклись, подошли к компу -- всегда известно что латинская раскладка и не надо отвлекаться на поиск индикатора текущего языка который прячется где-то в углу монитора.

ps: испытания прототипа показали что это просто удобно.
Re[10]: Каких программ вам не хватает?
От: temnik Россия  
Дата: 10.01.22 18:38
Оценка:
_>Отвлеклись, подошли к компу -- всегда известно что латинская раскладка и не надо отвлекаться на поиск индикатора текущего языка который прячется где-то в углу монитора.


Ну я и сказал, что есть пунтосвитчер, при котором пофигу какая раскладка, и не надо отвлекаться на поиск индикатора текущего языка. но, можно, конечно, и велосипед поизобретать, если очень хочется. Только этот велосипед не переключит раскладку, если не прошло 10 (или сколько там?) минут, а пунто переключит.
Лучший хостинг от 4 евро, VPS от 6 евро, разные локации, оплата картами без проблем, скидки до 20%.
50 бесплатных смс
Re[4]: Каких программ вам не хватает?
От: no_ise  
Дата: 15.12.23 21:28
Оценка:
Здравствуйте, no_ise, Вы писали:

_>Здравствуйте, DiPaolo, Вы писали:


DP>>Можно посмотреть в сторону KODI — там много всего есть, в том числе огромное количество плагинов, а также форум, где могут подсказать.


DP>>Вот, например, штука, которая может подойти: https://www.youtube.com/watch?v=s1DPRk1W0-U


_>Ага, спасибо, вроде требованием соответствует! Нужно будет проверить как она на самом деле



В общем, недавно обнаружил что у ютюб есть Add-to-queue/playlist. Более-менее удобно и приблизительно соответствует тому что мне нужно.
Не знаю, было ли это два года назад... Или они догадались где искать хорошие ТЗ...
Re[2]: Каких программ вам не хватает?
От: wantus  
Дата: 15.12.23 23:10
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

LS>Мне сейчас нужно решить задачу разбиения набора многогранников на набор выпуклых многогранников, пока не нашел.


Это пять.
Re[2]: Каких программ вам не хватает?
От: wantus  
Дата: 15.12.23 23:12
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>1. Карточки для запоминания. Должно быть онлайн-приложение и оффлайн нативное приложение для iOS. Должны быть изучены научные источники данных по правильному алгоритму, вроде SuperMemo публиковал такие. Без всяких готовых коллекций, именно для самостоятельного заполнения.


Anki + куча других вариантов. Ключевые слова — spaced repetition.
Re[3]: Каких программ вам не хватает?
От: vsb Казахстан  
Дата: 16.12.23 09:54
Оценка:
Здравствуйте, wantus, Вы писали:

vsb>>1. Карточки для запоминания. Должно быть онлайн-приложение и оффлайн нативное приложение для iOS. Должны быть изучены научные источники данных по правильному алгоритму, вроде SuperMemo публиковал такие. Без всяких готовых коллекций, именно для самостоятельного заполнения.


W>Anki + куча других вариантов. Ключевые слова — spaced repetition.


Не подходит, там алгоритм не такой.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.