LINUX.ORG.RU

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

Объясните для дебилов на пальцах: какая разница между реализацией MVCC внутри Postgres и внутри какого-нибудь Oracle там последнего?

Форум — Development

Недавно чел один высказался при мне, что в postgres есть проклятие VACUUM (что как-бы по-всякому настраивается и можно избегать - это как наука про уборку мусора - как не срать, чтобы GC работал поменьше) и что в каком-то там Oracle тоже есть MVCC и оно как-то так реализовано, что старые версии оказываются в другом «таблеспейсе» и как-бы не нужен VACUUM. Я спросил физически-то в чём разница? Вот есть у тебя блок B+Tree дерева, там остаются старые версии туплов (строк), на которые ещё ссылаются какие-то транзакции, а когда никто не ссылается тупл помечается удалённым, но продолжает валяться в блоке B+Tree - никто же не станет перепаковывать блок целиком только чтобы похерить там пустое место, это же долго. Если в каком-то там Oracle старые версии вдруг хранятся в «каком-то другом месте», то как? Он их туда перекладывает при апдейтах? А как ссылающиеся на него транзакции переживают перекладывание? А зачем перекладывает, чтобы блок B+Tree пересобрать заново без пустых мест? А зачем, всё ж будет тормозить?

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

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

 

igloev
()

Intel'овские плюшки для слаки

Форум — Linux-hardware

Вот, сваял слакбилд для slackware-current.

https://github.com/stanson-ch/beignet.SlackBuild

Теперь Beignet (Интелевский OpenCL для процессоров Gen3+ c Intel HD Graphics) собирается и работает на current'е.

В гимпе фильтры значительно шустрее работают и всё такоэ.

Beignet был заброшен Интелем в пользу compute-runtime, но последний поддерживает процессоры только начиная с Broadwell. А постоянно меняющийся llvm привёл к тому, что ванильный Beignet не собирается при мало-мальски свежем окружении. В общем, несколько патчей из дебиана, парочка из арча, немножко своего - и всё снова заработало.

Обновил для llvm11. Вроде работает. Задрали уже обратную совместимость ломать.

 , , , , плюшки

Stanson
()

Текстовое IDE?

Форум — Development

Привет!

Какой текстовый редактор (vi(m)/emacs/etc.) выбрать для программирования на Питоне? Используемый мной Geany перешел на gtk3 и стал тормозить. Что мне нужно:

  1. Подсветка синтаксиса
  2. Поддержка вкладок и легкая навигация по ним
  3. Возможность запуска программы без выхода из редактора
  4. Подсказка по мере ввода для имен методов классов. Geany не всегда корректно угадывает.
  5. Автоотступы для новой строки. Автозамена Tab на 4 пробела.
  6. Поиск по всем открытым файлам
  7. Относительно высокая скорость работы
  8. Желательно: задание произвольной правой границы (например, в 72 символа)
  9. Я не знаю, как это делается в текстовых IDE, но желательно иметь возможность быстрой навигации по именам классов, методов и пр.
  10. Плюсом будет подсветка лишних скобок
  11. Плюсом будет автоопределение кодировки для обычных txt

 , , ,

Deleted
()

работа с SQL

Форум — Development

А что есть в Linux-ах красивого с GUI для проектирования БД (вот таблички нарисовать, связи между ними и т.д.). Код писать я и сам напишу, т.е. на генерацию БД мне наплевать, просто структура сложная и надо бы на неё смотреть наглядно. Как делать БД на бумаге знаю и даже делал до 20 таблиц, но тут их штук 40 и банально сложно всю структуру в голове держать/лист бумаги маленький и на него она не помещается. Windows тулзы для этого юзать не хочу, хочется чего-то опенсорсного и в Linux-е. Знаю про SQL Workbench, но там с HighDPI печально всё.

 ,

peregrine
()

Как в консоли параллельно выполнять обработку нескольких файлов?

Форум — Development

Есть консольная утилита pngcrush и надо ею пережать несколько тысяч картинок.
С помощью find написал обработку их всех. Но такое решение обрабатывает одну картинку за раз используя одно ядро.
Как сделать запуск нескольких процессов pngcrush?

 

Centrin0
()

Что перспективней Python или C#

Форум — Web-development

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

 ,

KRex
()

Как устроен захват экрана в x11?

Форум — Development

В частности в webrtc окошке браузеров? Интересуюсь с целью получения возможности прятать окно во время показа.

 , , , ,

pon4ik
()

Производительность; илитный запил оптимальных реализаций и основы матчасти.

Форум — Development

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

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

Изначально я хотел написать про то: что такое бесплатные вычисления на примере is_range() + сумма елементов массива, но тут выявилась смешная особенность, поэтому пока без is_range().

Начнём с простого - сумма елементов(float) массива. Как написать её быстро? Обычный крестопоц сделает так:

auto summ = accumulate(begin(vec), end(vec), 0.)

Этот код выдаёт 5.6GB/s(мы всё бенчим в л1д 32килобайта массив). Казалось бы, если бы мы слушали всяких «гуру», которые нам говорят: accumulate() - оптимизирован, «ты что умнее создатели stl"а?», «конпелятор умнее тебе - сам всё делает оптимально», «руками что-то делать слишком сложно и не нужно» - то мы бы там и остались с этими 5.6ГБ, но мы пойдём дальше и поймём почему так, и является ли это тем, что намн ужно.

Но посмотрев на код - он не векторизован:

	addq	$4, %rdx
	vcvtss2sd	-4(%rdx), %xmm2, %xmm2
	vaddsd	%xmm2, %xmm1, %xmm1

Почему? Патамучто это основная флоатпроблема: Он не ассоциативен - флоат не имеет в себе точных представлений всех чисел входящих в диапазон его «представления» т.е. порядкопроблемы.

Поэтому конпелятор НЕ ВЕКТОРИЗУЕТ флоат по умолчанию, ну никак. Даже такую банальщину.

Для решения этих проблем - есть ключик -funsafe-math-optimizations, который входит в -ffast-math, который кладёт на точность при вычислениях. Добавив его мы получаем уже 44.9GB/s.

Но теперь мы получаем ещё одну проблему - надо думать: «как бэ сунуть эту ключик не повредив там, где этот ключик не нужен».

Поэтому ноцанам, которые хотят быстро и не хоятт рандомных жоп из-за тупости конпелятора - пишут всё руками. Допустим на той же сишке это пишется так:

double memadd_autovec(buf_t buf) { //5.609465GB/s, либо 44.969652GB/s с ffast-math
  float * it = buf_begin(buf), * end = buf_end(buf), summ = 0.;
  do {
    summ += *it++;
  } while(it != end);
  return summ;
}

double hsumf(__v8sf v) {
  return (v[0] + v[1] + v[2] + v[3] + v[4] + v[5] + v[6] + v[7]);
}

double memadd_vec(buf_t buf) { //45.652002GB/s и класть на ffast-math
  __v8sf * it = buf_begin(buf), * end = buf_end(buf), summ = {};
  do {
    summ += *it++;
  } while(it != end);
  return hsumf(summ);
}

Т.е. разницы никакой нет, кроме нужной нам реализации горизантального сложение вектора. Когда я говорил пацану: «векторную сишку для написания быстрого кода юзать намного проще, чем плюсы» - поцан нипонимэ, да и любые пацаны скажут - ну дак с -ffast-math оба выдают по 45гигов - нахрен эта сишка нужна?

А вот зачем:

double memadd(buf_t buf) { //132.878440GB/s
  __v8sf * it = buf_begin(buf), * end = buf_end(buf), summ = {};
  do {
    summ += *it++;summ += *it++;summ += *it++;summ += *it++;
  } while(it != end);
  return hsumf(summ);
}

Это называется пацанский анролл копипастой, а вот заставить конпелятор нормально что-то разанролить очень сложно.

Если бы мы слушали всяких «гуру», которые нам вещают: «анрол говно и не нужен» - мы бы так и седели с 45-ю гигами, а так мы сидим с 132.878440GB/s. Т.е. анролл нам дал немного не мало ~300%.

Но основная мысль, которую толкают всякие «гуру» - это не надо следить за тактами/считать такты и прочее. Но мы о5 сделаем наоборот и посмотрим что будет.

Т.к. наш юзкейс упирается на 99% в throughput и дёргается одна инструкция, то нам достаточно просто считать теоретическую производительность для моего камня. 4.5(частота камня)*8(т.е. у нас камень с avx, то там вектор 32байта, либо 8флоатов.)*1(throughput нашей инструкции - в данном случае vpaddps из интел мануала). Т.е. 36гигафлопс, либо ~144гига. Т.е. мы сняли овер 90% теоретической производительности - остальные 10% у нас ушли в наши циклы, всякие горизонтальные суммы вектора и прочее, ну и конечно же чтение данных из кеша.

Но самое смешное - на моём хасвеле умножение имеет throughput 0.5 - т.е. на хасвеле умножение быстрее сложения. Это новая забористая трава у интела.

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

Поэтому очень смешно слушать, когда какие-то пацаны говорят: «float point имеет такую же производительность как и инты» - нет, оно имеет такоу же производительность лишь по причине того, что на штеуде инты тормазят так же, как и float.

И чтобы окончательно в этом убедится - мы взглянем на fma(вариации умножения со сложением/вычитанем), которые имеют throughput 0.5 - да, да - на хасвеле умножение+сложение в 2раза быстрее просто сложения. Это уже не просто трава - это что-то принципиально новое.

У целочисленного сложения же throughput 0.5 и казалось бы, если мы поменяем в нашей функции float на int - у нас будет сложение работать в 2раза быстрее, но это не так. Оно выдаёт те же 130гигов, а почему?

Вообще у камня есть такая фича, допустим у нас:

add $1, %reg0//вот тут инструкция add залочит регистр reg0
add $1, %reg0//а эта инструкция уйдёт в лок до особождения предыдущей инструкцией регистра reg0

Чтобы такой жопы небыло - есть специальная фича:

add $1, %reg0//lock reg0
add $1, %reg0//И тут вместо того, чтобы уйти в лок - камень вместо reg0 даёт инструкции любой свободный регистр.

Эта фича называется прееименование регистров, либо как-то так - мне лень гуглить.

Дак вот штука в том, что фича работает через жопу. Мне лень читать мануал и искать почему так, но штука в том, что она ограничивает throughput. На умножении и целочисленном сложении она огранивает throughput c 0.5 до 1.

И вот я решил заюзать сложении через fma:

__v8sf fmaadd(__v8sf a, __v8sf b) {
  return _mm256_fmadd_ps(_mm256_set1_ps(1.), a, b);// a + b * 1. == a + b.
}

double memadd_fma(buf_t buf) {
  __v8sf * it = buf_begin(buf), * end = buf_end(buf), summ = {};
  do {
    summ = fmaadd(summ, *it++);
  } while(it != end);
  return hsumf(summ);
}

Но меня ждала жопа: 27.347290GB/s, причем не анролл и ничего не помогал. Я уж подумал, что мануал наврал, но позже до меня допёрло: у неё latency 5тактов и ((4.5×8)÷5)×4 ~= 29гигов - т.е. я получаю производительность с её latency, но какой жопой оно так?

Потом я вспомнил, что гцц гинерит анрольный код вида:

add $1, %reg0
add $1, %reg0
//а не
add $1, %reg0
add $1, %reg1

Т.е. на неё вообще не работает переименовывание регистров - и инструкции постоянно в локе. Я это проверил и оказался прав. Ну и я написал такой мемадд:


__v8sf fmaadd(__v8sf a, __v8sf b) {
  return _mm256_fmadd_ps(_mm256_set1_ps(1.), a, b);
}

inline void fma_10way_finality(__v8sf * cache, __v8sf * it, __v8sf * end) {
  switch(end - it) {
    case 8:
      *(cache + 7) = fmaadd(*(cache + 7), *(it + 7));
      *(cache + 6) = fmaadd(*(cache + 6), *(it + 6));
    case 6:
      *(cache + 5) = fmaadd(*(cache + 5), *(it + 5));
      *(cache + 4) = fmaadd(*(cache + 4), *(it + 4));
    case 4:
      *(cache + 3) = fmaadd(*(cache + 3), *(it + 3));
      *(cache + 2) = fmaadd(*(cache + 2), *(it + 2));
    case 2:
      *(cache + 1) = fmaadd(*(cache + 1), *(it + 1));
      *(cache + 0) = fmaadd(*(cache + 0), *(it + 0));
    case 0:
      break;
    default: error_at_line(-1, 0, __FILE__, __LINE__, "bad_aligned");
  }
}

double memaddfma_10way(buf_t buf) {
  __v8sf * it = buf_begin(buf), * end = buf_end(buf), summ = (__v8sf){};
  __v8sf * cache = (__v8sf[10]){{}};
  uint64_t i = 0;
  while((it += 10) <= end) {
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    i = 0;
  }
  fma_10way_finality(cache, (it - 10), end);
  summ = (*(cache + 0) + *(cache + 1) + *(cache + 2) + *(cache + 3) +
	  *(cache + 4) + *(cache + 5) + *(cache + 6) + *(cache + 7) +
	  *(cache + 8) + *(cache + 9));
  return hsumf(summ);
}

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

И вся эта порятнка нужна для борьбы с тупостью конпелятора.

Это уже: 214.167252GB/s(раельно там в районе 250 - просто мой бенч говно). 107 гигафлопс на ведро. Из теоретических 144, но тут уже влияние кеша. Причем 50+ из которых выкидываются и просто бесплатные.

Теперь вопрос к пацанам - что нам дадут эти гагфлопсы, когда у нас будет массив не 32килобайта, а 32мегабайта? Зачем нужно выживать максимум, когда скорость памяти отсилы 20-30гигабайт и нам хватит даже С++ кода с ffast-math?

Ну и призываются упомянутые мною пацаны: mv - этот тот експерт, что вещал про «руками переименовывать регистры не надо» и «анрол ваще ненужен», emulek вещал про ненужность счёта тактов, и не понимал что такое «беслпатно», AIv - не понимал в чем проблема плюсов, ck114 - так же не понимал в чем проблема плюсов.

Бенчи: https://gist.github.com/superhackkiller1997/606be26fa158ef75501d - вроде я там ничего не напутал.

P.S. - не выпиливайте пж, пусть пацаны «нужно» или «не нужно». Мне интеерсно. Ну и там рекомендации пацанов.

 , , ,

Carb_blog
()

Сделать из vim C++ IDE, подскажите, пожалуйста, список дополнений

Форум — Development

Предъистория: несколько раз пытался пользоваться vim и каждый раз бросал. Всякий раз он мне казался неудобным. В этот раз плюнул на стандартные настройки, перенастроил его по-нормальному и да, теперь им сходу стало можно пользоваться как редактором текста. В частности: перенёс перемещение курсора с hjkl на esdf и esc на shift+space. Также, курсор при движении влево-вправо теперь не останавливается на конце строки.

Вимом стало возможно нормально пользоваться! Теперь, я хочу затюнить его под С++ кодинг.

Для этого мне минимально необходим следующий функционал:

  • переключение между заголовочником и исходником,

  • переход к определению функции под курсором,

  • переход к объявлению функции под курсором,

  • переход к предыдущей позиции курсора (не используя закладки),

  • плагин для содержащания файлов проектах,

  • переход к файлу, указанному директивой include под курсором,

  • аналог вкладок в других редакторах и переключение между ними,

  • подсветка синтаксиса,

  • подсветка всех слов аналогичных тому, что под курсором (по клавише),

  • инкрементальный поиск,

  • поиск во всех файлах проекта с подсветкой найденного,

  • переименование метода класса в исходнике с автоматическим изменением сигнатуры в заголовочнике,

  • astyle (ну это просто),

  • автодополнение (уже подсказали в другой теме, не пишите про него),

  • дебаггер (с вычислением символа под курсором и переходом из одной точки дебага в другую),

  • листинг ошибок компиляции со списком для удобного перехода на строку с ошибкой (такая штука, которая внизу экрана любой обыяной IDE).

  • Ну и, конечно, сохранение/открытие проекта, быстрый запуск компилятора и скомпилированного файла.

Ну вот и всё. Вроде ничего не забыл.

 ,

next_time
()

Расскажите про barman, пожалуйста

Форум — Admin

Всем привет,

Пытаюсь настроить бэкапы PostgreSQL с помощью Бармана, но никак не могу понять разницу между сценарием 1 и сценарием 1b на их сайте.

По сути я хочу сделать вот такую структуру:

- 2019/07/10
  - wal-1
  - wal-2
  - wal-3
  - wal-n

- 2019/07/11
  - wal-1
  - wal-2
  - wal-3
  - wal-n

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

Подскажите, пожалуйста, если кто сталкивался.

 ,

alex07
()

Свободное ПО в электронике.

Галерея — Скриншоты

Многое хочется написать. Во-первых, про разрешение 800х600 скажу, чтобы сразу не придирались. У меня сейчас стоит карта S3 Trio64V2, для которой я дорабатываю драйвер для Xorg. Так что низкое разрешение -- это рабочий момент.

На экране изображена моя текущая деятельность -- разработка инфракрасного датчика. Весь фетиш в том, что я, проявив героизм против фраз "Да что ты мучаешься! Поставь OrCAD! Делать тебе нечего?", использовал исключительно свободное ПО. Схему я создавал в gschem (проект gEDA). Трассировка ручками осуществлялась в PCB. Просмотр результатов перед передачей в производство -- gerbv. И вот результат труда вы видите на экране: экспериментальная партия однослойных печатных плат (25 шт.) с маской и шелкографией, изготовленная в Зеленограде. Проект передавался в производство в формате Gerber RS-274X, файл для сверлильного станка в формате NC drill/Excellon. У технолога не возникло ни единого вопроса, кроме способа разделки плат (фрезерование или скрайбирование).

Дистрибутив Debian. Разработка начиналась в пакетах, которые идут с дистрибутивом (последние стабильные срезы), но потом я перешел на версии CVS (только опакетил для Etch), так как предполагаю помогать проекту. Там огромнейший фронт работ по недостаткам, глюкам и фичам. В планах также написание русскоязычного руководства по использованию пакета программ: от проекта до производства. Но когда это буду делать, я еще не знаю. Поймите, времени очень мало.

Резюме: свободное ПО (с соотв. трудностями) можно использовать при производстве электроники. Предлагать переходить на это ПО людям, сто лет сидящим на ворованном OrCAD, PCAD и пр., я не советую. Пока к людям не придет осознание (либо приказ сверху), что использовать ворованный, дорогой продукт -- это очень плохо и опасно, то изменить что-то не получится. Поскольку я сам для себя хозяин в данном вопросе, и ко мне в мастерскую никакая сволочь с советами не лезет, то мне проще.

Zubok
()

Операционная система GNU Emacs завоевывает десктоп! :)

Галерея — Скриншоты

Операционная система GNU Emacs получила новые возможности! Собрал волю в кулак и написал библиотеку, которая практически полностью реализует протокол X11. Библиотека незамысловато называется x11 и написана на чистом Emacs Lisp, но пока имеет статус technical preview, хотя в принципе уже можно писать что-то реальное. За основу пока взяты описания протокола на XML из проекта XCB, которые разворачиваются в реализацию. В результате имеем практически все расширения. Работа с протоколом осуществляется в асинхронном стиле подобно XCB. Чего пока нет:

  • MIT-SHM. Запросы реализованы, но работать через разделяемую память из операционной системы Emacs мы пока не можем, поэтому Будем через сокет закидывать. Тем более, что разница в скорости, говорят (видел где-то в инете замеры), не такая сумасшедшая.
  • XKB. Просто забыл реализовать пару конструкций XML, используемых для описания этого расширения. Это я скоро реализую, поэтому расширение будет работать в полном объеме.
  • Big-requests. Тоже будет реализовано. Расширение содержит всего один запрос. Он реализован. Но именно для этого расширения надо несколько перелопатить процедуры формирования запросов к серверу X, так как подсчет размеров запросов изменяется с этим расширением.
  • GLX. Огромнейший пласт. За него возьмусь сильно позже. Тут же еще надо полностью сгенерировать протокол GL, а он очень обширный.

Остальные расширения вроде бы должны работать, если их описания правильные и если я что-то не упустил принципиального. Я работу всех расширений даже не проверил, так как очень спешу радостью поделиться. :)

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

На скриншоте сверху робкая демонстрашка в стиле LSD основного протокола X11 (Core protocol). Ну с arcs, rectangles и core fonts все и так понятно. А вот как выведены фотографии? Я пока не настолько крут, чтобы писать растеризацию jpg и png на Emacs Lisp. Пораскинув мозгами, пошел смотреть, чем может помочь ImageMagick. Оказалось, есть там возможность получить дамп картинки в нужном формате. Так и сделал: надо отобразить картинку - дергаем stream, она нам отдает дамп в буфер, мы его отсылаем в сервер X. «Привет, Isden» написана мышкой. Демка отслеживает событие motion-notify и рисует маленький квадратик под указателем. По кнопке «q» - выход (отслеживается событие key-press)

На скриншоте снизу робкая и неумелая демонстрашка расширения XRender. Тоже в стиле LSD. На ней мы видим linear gradient, radial gradient, треугольник и отрисовку сглаженных окружностей. Окружности состоят из трапезоидов. Алгоритм рассечения (tessellation) я применил первый, какой мне пришел в голову - горизонтальными трапециями. Какая есть проблема? Сглаженный текст! Что-то мне писать растеризацию TrueType или Type1 на Emacs Lisp не улыбается. Есть идея написать программку на Си с помощью Xft, которую я буду что-то просить растеризовать, а она результат будет отдавать в Emacs. То есть примерно как и с ImageMagick поступить.

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

Так что есть потенциальная возможность воплотить мечту atoku в жизнь. :)

Традиционная ссылка на обоину: #888888. Старую удалил, так как она надоела, а новую еще не искал. Этот серый цвет реально бесит. :)

 , ,

Zubok
()

Автоматическое формирование отчётов в LaTeX.

Форум — General

Пока оформлял отчёт по НИРу, возникла идея — всё это дело автоматизировать. Есть БД с некими результатами. Полагаю, что нужно скриптом собирать определённую выборку из БД, и на основании выборки (за дату или период) формировать файлы данных для gnuplot и .tex-файлы, которые потом кормить pdflatex'у.

Подтолкните в какую сторону смотреть. Как формировать tex-файл по определённым условиям.

 , ,

arbyz
()

Посоветуйте, что почитать / посмотреть по нейросеткам

Форум — Development

А конкретнее - хочу понять, как распознавать изображения и «понимать», что на них есть.

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

И да, хочется без привязки к python и TensorFlow, потому что писать буду, вероятей всего, не на них, а на всеми-не-любимой java и Deeplearning4J.

 deeplearning4j, image recognition, , ,

bvn13
()

зависание файловой 1С

Форум — Admin

Добрый времени суток. Стоит файловая 1С под Ubuntu - 18.04. Периодически происходит зависание(появляются часики и висит). Приходится закрывать и открывать. Раньше все было нормально. Может кто сталкивался? Или в базе проблемы?

Заранее благодарен...

 ,

vadim55_242
()

Второй vpn пускается через первый и от этого тормозит. Как пофиксить?

Форум — Admin

Я по умолчанию всегда держу openvpn соединение включенным, используя его как default gateway, так как живу в тоталитарной стране с цензурой интернета. Иногда мне надо подключать openconnect vpn для доступа к компьютерному кластеру. Если я делаю это при включенном openvpn соединении, соединение с кластером тормозит. Я предполагаю, что трафик опенконнекта идет через тот самый default gateway. Как пофиксить? Бонусные очки за решение, использующее GUI нетворкменеджера.

 ,

hlebushek
()

Как сменить X11-шрифт по умолчанию?

Форум — Desktop

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

https://ibb.co/QNJKkks

 , ,

FuManchu
()

Информация по t440p

Форум — Linux-hardware

Нашёл отличную документацию по покупке и апгрейду Lenovo Thinkpad T440p, который до сих пор ещё даст прикурить многим моделям по соотношению цена/качество.

https://octoperf.com/blog/2018/11/07/thinkpad-t440p-buyers-guide/

 , ,

Deleted
()

groff и руские буквы

Форум — Desktop

Понадобилось написать один документик, и я решил юзать groff, так как он уже был, а latex большой

С английскими буквами все норм, а вот с русскими все не так хорошо

Вот пример https://imgur.com/a/d9HXfvy

groff всегда выдает ошибку

:0: macro error: diversion open while ejecting page (recovering)

Макросы: ms

Дистр: Gentoo

 ,

clstrmstr
()

Почему одни и те же шрифты выглядят по разному в Убунту 16.04 и Дебиан 9.8?

Форум — Desktop

Убунту 16.04 https://imgur.com/a/GbnUG1o

Дебиан 9.8 https://imgur.com/a/SNQw7mP

Шрифты были скопированы с заменой из мате-Убунту 16.04 в мате-Дебиан 9.8 но выглдят они поразному.

 , , ,

Deleted
()