LINUX.ORG.RU

Сообщения grem

 

Кнопка «закрыть» у Opera без заголовка и границ окна в KDE5

Форум — Desktop

Есть 2 системы с Gentoo и KDE5 практически идентичны и с одинаковой версией Opera (одна из низ в VirtualBox). В обоих системах для приложения Opera в свойствах окна для «приложения» настроено скрытие заголовка окна и его границ. В системе с VirtualBox при разворачивании окна браузера во весь экран в верхнем правом углу появляется мелкая кнопка «закрыть», во второй системе она не появляется.

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

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

 , ,

grem
()

Расширения, которых больше не будет с выходом Firefox 57

Форум — Desktop

Каких полезных расширений лишатся пользователи, с полным переходом Firefox на расширения основанные на WebExtensions и чем их можно заменить?

Из тех, что (иногда) использовал я:

P.S.
Да они издеваются!

Устали от обновления плагинов? Firefox обеспечит вашу безопасность.

 ,

grem
()

Plasma 5.11.0

Форум — Desktop

Вышла 10 октября: https://www.kde.org/announcements/plasma-5.11.0.php

Из заметных новшеств - они опять изменили systemsettings и что-то там про wayland с dpi на разных мониторах.

 ,

grem
()

VSCode как IDE для Fortran

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

Среди бесплатных IDE для языка Fortran можно использовать несколько приложений. Самый простой из них в использовании, особенно для начинающих, наверное, Code::Blocks, в котором проще всего создать проект. Помимо него возможность работы с проектами на Fortran имеют

  • Eclipse - используется компонент «Photran» из «Eclipse for Parallel Application Developers», на вид имеет хороший список инструментов;
  • Netbeans - создаётся как проект C/С++;
  • Oracle Developer Studio - для скачивания требует регистрации.

Если кто имеет опыт работы в них, будет интересно более подробно о них узнать, особенно о возможностях и инструментах, которые понравились. Может ещё какие бесплатные IDE стоит отметить, о которых я не упомянул.

Долго я смотрел на vscode и не мог решиться его на чём-нибудь попробовать. В итоге решил посмотреть, есть ли в нём возможность работы с проектами на Fortran.

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

 ,

grem
()

«Странное» поведение std::cout.setf (на самом деле нет)

Форум — Development

Столкнулся с одной проблемой, но пока писал сюда, разобрался.

Сегодня запустил в Linux ранее написанную небольшую утилитку (писал в Windows с использовванием MinGW64). При это заметил, что вывод результата крайне странный: результат функции класса почему-то выводится в «hex». Сначала решил, что может чего намудрил внутри функции, но в ней число вычислялось нормально. Методом «научного» тыка выяснил, что проблема связана с std::cout.setf, так как в процессе вывода данных я, в зависимости от потребностей, меняю формат вывода.

Набросал небольшой пример, который демонстрирует проблему:

#include <iostream>

/* g++ -Wall -std=c++11 ./main.cpp  */

int main() {

    double test_d = -0.0010532140082682021;

    std::cout.setf(std::ios::scientific);
    std::cout << "test_d = " << test_d << std::endl;
    
    std::cout.setf(std::ios::fixed);
    std::cout << "test_d = " << test_d << std::endl;

return 0;
}

Можно и без -std=c++11, результат вывода тот же:

test_d = -1.053214e-03
test_d = -0x1.1417fee28283fp-10

вместо второго числа ожидается -0.001053.

Ну так вот, как оказалось, просто переключиться на fixed формат недостаточно, так как scientific при это не отключается, а в сочетании с ним, результат будет выводиться в HEX (http://en.cppreference.com/w/cpp/io/ios_base/setf):

scientific - generate floating point types using scientific notation, 
or hex notation if combined with fixed: see std::scientific

то есть перед вызовом std::cout.setf(std::ios::fixed) нужно сначала вызвать

std::cout.unsetf(std::ios::scientific);

Осталось понять, почему в MinGW64 (не помню какой версии), работает иначе.

 ,

grem
()

GENTOO_MIRRORS и локальный каталог

Форум — Desktop

man make.conf

GENTOO_MIRRORS = [URIs] Insert your space-separated list of local mirrors here. These locations are used to download files before the ones listed in the ebuild scripts. Merging 'mirrorse‐ lect' can help. Entries in this variable that have no protocol and simply start with a '/' path separator may be used to specify mounted filesystem mirrors.

поэтому, казалось бы, GENTOO_MIRRORS=«/mnt/dist» должно работать, но к этой директории при скачивании пакетов даже не обращается.

Есть, конечно, PORTAGE_RO_DISTDIRS, но почему тот то способ не работает сейчас? Сейчас, потому, что когда-то я его использовал, но не могу вспомнить точно как прописывал.

 , ,

grem
()

digiKam 5.7.0

Новости — Мультимедиа
Группа Мультимедиа

12 сентября 2017 года вышло очередное обновление приложения для каталогизации и обработки фото-файлов digiKam.

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

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

 , ,

grem
()

XnViewMP 0.87 (ebuild для Gentoo)

Форум — Multimedia

7 сентября 2017 года вышел сабж (и как самостоятельное приложение XnConvert для конвертрования). Так как многие уже здесь жаловались, что kipi-plugins превратились в нечто бесполезное, потянув за собой gwenview, то я не выдержал и подправил существующие в оверлеях ebuild-файлы, чтобы они наконец-то были в каком-то виде «рабочими». Надеюсь, что это скорее так, чем нет. По крайней мере, теперь оба приложения у меня запускаются после установки как со встроенными библиотеками, так и с внешними.

Тэг gentoo добавлен по той, причине, что прошу желающих дополнительно потестить ebuild'ы. Как смог, я это уже сделал. При использовании внешних библиотек для проигрывания медиа-контента наличие библиотеки libpulse.so мне не понадобилось, но вот со встроенными, он её требует, поэтому и пришлось добавить дополнительную зависимость от pulseaudio/apulse.

XnViewMP

XnConvert

Pinkbyte, можешь подсказать, как подправить первый ebuild, чтобы в зависимости от платформы создавался симлинк на libpulse.so из соответствующих платформе каталогов?

И как всё-таки лучше поступить, когда приложение может захотеть в рантайме плагины gstreamer, но и без них работает? Не запихивать же в зависимости все gst-plugins-*? Я пока ограничился elog сообщением, что пользователю нужно будет их доустановить нужные ему.

 , , , ,

grem
()

Fedora {24,25} получение url для скачиваемых пакетов.

Форум — Desktop

Подскажите, как в Fedora 24 или 25 получить ссылки на скачиваемые пакеты? Есть ли для них yumdownloader. В CentOS 7 им вполне можно было обойтись. В указанных версиях Fedora в dnf-plugins-core плагинах dnf download не имеет опции "--url". Насколько я понял, эта опция появилась с 26-й версии. о_О

 ,

grem
()

Linux Mint 18.2

Форум — Desktop

Обновили «встроенный» софт и добавили в него новые фичи. Исошки вышли сразу для «веток» Cinnamon (3.4), Mate, KDE, XFCE.

https://www.linuxmint.com/rel_sonya_cinnamon_whatsnew.php

 

grem
()

Текстовые редакторы с возможностью сравнения файлов

Форум — Desktop

Существуют ли для Linux текстовые редакторы со сравнением уже открытых во вкладках текстовых файлов с визуализацией отличий (пусть через плагин, можно без объединения), запускаемым посредством клавиатурного сочетания? Отдельных софтин навалом: kompare, meld, diffuse, vdiff. Но это отдельные приложения. Есть Komodo Edit, но он выводит результат в виде «diff».

Из известных мне подобных редакторов для windows - Notepad++, RJ TextEd. Там можно вовремя работы с текстовыми файлами в любой момент ткнув shortcut узнать «что же я натворил, братцы?».

Для Linux существует notepadqq, который позиционируется как «замена» Notepadd++, только плагинов к нему что-то пока не видно. Из Gedit можно было как-то вызывать Meld, но при этом второй файл всё равно нужно было открывать через файловый диалог (или нет?). Примерно такое же поведение, емнип, было у Kate из KDE3 и KDE4, а в Kate из Plasma5 непонятно как встроить запуск Kompare.

В Atom compare выглядит крайне странно (inline?). Как обстоят дела в VS Code для произвольных текстовых файлов?

 , ,

grem
()

Очень сильно отличие производительности исполняемого файла в Linux (gcc) и Windows (mingw64)

Форум — Development

К вопросу о «кроссплатформенной» разработке.

Есть такой фрагмент кода (сильно порезанный кусок, можно ещё сильнее порезать, но на нём демонстрируется проблема):

// g++ -Ofast -ffast-math

#include <cstdio>
#include <cstdlib>
#include <cmath>

int main() {
    const int N = 1200;
    double* A;
    double* B;
    double C;
    int m;
    
    A = new double[N*N];
    B = new double[N]; 
    
    //srand(time(0));
    //srand( (unsigned)time( NULL ) );
    
    for (int i  = 0; i < N; i++) {
        for (int j =  0; j < N; j++) {
            A[N*i+j] = (double)rand() / ((double)10000);
        }
        B[i] = 0.0;
    }

    // Сильно порезанный фрагмент кода:    
    for (int k = 0; k < N-1; k++ )  {
        m = (k + 1);
        
        for (int i = k + 1; i < N; i++ )   {
            if ( fabs(A[N*(i) + (k)]) > fabs(A[N*(m-1) + k]) ) m = (i + 1);
        }
        B[k] = m;
        
        if ( (m + 1) != k ) B[N-1] = -B[N-1];
        
        C = A[N*(m-1) + k];
        A[N*(m-1) + k] = A[N*k + k];
        A[N*k + k] = C;
        
        if (C == 0) continue;
        
        for (int i = k + 1; i < N; i++ ) A[N*i + k] = -A[N*i + k]/C;
        
        for (int j = k + 1; j < N; j++ )  {
            C = A[N*(m-1)+ j];
            A[N*(m-1) + j] = A[N*k + j];
            A[N*k + j] = C;
            if ( C != 0 )  {
                // дольше всего выполняется этот блок цикла:
                for (int i = k + 1; i < N; i++ )  {
                    A[N*i + j] = A[N*i + j] + A[N*i + k]*C;
                }
            }    
        }
    }
    
    delete [] A;
    delete [] B; 
    
    return 0;
}

Суть проблемы в том, что собранный с одинаковыми опциями этот кусок выполняется на моём железе в Linux за 2.7 сек (gcc 4.8.4), а в Windows7 (mingw64 4.9.3, tdm-gcc 4.9.2) за 8.4 (т.е. разница ~3 раза). Ни на одном другом примере я такого проседания не наблюдал (разве что TDM-GCC генерит в некоторых случаях код заметно быстрее чем MinGW64, но не в этом случае). Понятно, что в этом блоке, который третий по вложенности цикл

for (int i = k + 1; i < N; i++ ) {
    A[N*i + j] = A[N*i + j] + A[N*i + k]*С;
}
не самое эффективное обращение к элементам, так как часто приходится прыгать между элементами, но что есть, то есть - такой алгоритм попался. Но даже если просто оставить прибавление действительного числа «С», то в Linux это ускорит выполнение на 0.5 сек (насколько ускорит в Windows не проверял).

Сталкивался ли кто с подобным поведением MinGW64, TDM-GCCd в плане сильного проседания производительности? Какие ещё ключи компилятора могут заметно ускорить выполнение этого фрагмента?

 ,

grem
()

Подбор модулей памяти для ноутбука

Форум — Linux-hardware

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

Samsung np-sf511-s01ru (выпущен в 2011 году).

и какой всё же максимальный объём оперативки у него доступен?

По ссылке приведённой выше в ответах на вопросы пишут, что максимальный объём - 6 Гб (4 Гб + 2 Гб), при этом в описаниях сохранившихся в онлайн-магазинах указано, что 8 Гб. С частотами, задержками и напряжением всё понятно.

В различных обсуждениях часто упоминается, что старые ноутбуки могут не поддерживать банки памяти выше 256 Мб, т.е. 4 Гб модуль должен состоять из 16 банков. При этом есть ещё такая штука как ранк памяти и тут ограничения могут накладываться со стороны чипсета. Здесь, емнип, стоит чипсет Intel HM65. Всего 2 слота под память, занятые в текущий момент планками

2GB 1Rx8 PC3-10600S-09-11-B2
Samsung M471B2873GB0-CH9

и

2GB 1Rx8 PC3-10600S-09-10-ZZZ
Samsung M471B5773CHS-CH9

С лицевой стороны у них по 4 модуля памяти, с обратной, скорее всего тоже (не проверял). То есть стоит одноранковая память с объёмом банков, предположительно, не превышающих 256 Мб

В ноутбуке стоит процессор (то есть встроенный в него контроллер) Intel Core i3 2310M поддерживает до 16 Гб.

Вохможно ли, что максимальный объём поддерживаемой памяти для данного чипсета будет равен 6 Гб если хотя бы одна из планок будет двухранковой, и будет равен 8 Гб, если обе планки будут одноранковые?

Может ли кто подтвердить на примере своего нотубука с таким же чипсетом, что для чипсета Intel HM65 нужны модули памяти с банками не больше 256 мб? То есть для 4 Гб планки должно быть 16 модулей памяти (по 8 с каждой стороны).

P.S. Сейчас там стоит Gentoo, но я его не обновлял с 2012 года.

 ,

grem
()

Visual Studio 2017

Форум — Talks

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

Linux development with C++
Description: Create and debug applications running in a Linux environment.

То есть под Linux сама IDE ещё не работает, но уже есть какие-то инструменты для разработки под него.

Забавно, что для оффлайновой установки в Windows нужна полностью обновлённая Windows. Предыдущие оффлайновые iso-шки Community Edition 2013, 2015 (с обнолениями) отличились тем, что с них нельзя было произвести установку ... в офлайновом режиме (весь интернет наполнен болью из-за этого факта): система тоже должна была полностью быть обновлена, т.к. без каких-то сертификатов установщик не видит кучу файлов на образе диска.

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

 ,

grem
()

Очистка памяти после создания двумерного «непрерывного в памяти» массива

Форум — Development

«Я познаю мир», это главный тэг этой записи.

Допустим, хочется в C99 (в С++ такой способ тоже сработает) хочется создать двумерный массив в «непрерывной!» области памяти, чтобы в дальнейшем обращаться к его элементам как a[i][j]:

#include <stdio.h>
#include <stdlib.h>

int main()
{
int n = 12;

double (*a)[n] = (double (*)[n])malloc(n * n *  sizeof(double))

a[11][0] = 40.0;
printf("a[11][0] = %4.2f\n", a[11][0]);
// выход за границу массива с заползанием в следующий блок:
a[10][12] = 50.0;
printf("a[11][0] = %4.2f\n", a[11][0]);
printf("a[10][12] = %4.2f\n", a[10][12]);

return 0;
}

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

P.S. Казалось бы, что при создании подобного массива можно было бы описать его так:

#include <stdio.h>
#include <stdlib.h>

int main()
{
int n = 12;

// при присваивании, не выходя за границу массива, можно перезаписывать другие элементы:
double (*b)[1] = (double (*)[1])malloc (n * n * sizeof(double));
b[11][0] = 40.0;
printf("\nb[11][0] = %4.2f\n", b[11][0]);
// перезаписывает значение b[11][0]:
b[5][6] = 50.0;
printf("b[11][0] = %4.2f\n", b[11][0]);
printf("b[5][6] = %4.2f\n", b[5][6]);

return 0;
}

 , , , ,

grem
()

Информатика в школе. Программирование.

Форум — Talks

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

P.S. Учите ли вы своего ребёнка программированию сами? Это на случай, если вдруг получилось его заинтересовать.

 , ,

grem
()

Cantera 2.3.0

Форум — Development

19 января 2017, 3 недели назад, было объявлено о выходе новой версии Cantera (2.3.0) - open-source набора объектно-ориентированных библиотек и инструментов для решения задач затрагивающих химическую кинетику, термодинамику и/или процессы переноса.

Набор библиотек Cantera написан на C++ и имеет интерфейсы для написания приложений на языках программирования C++, Fortran 90, Python, Matlab.

Полный список изменений в новой версии
Руководство и документация к библиотекам

 , ,

grem
()

70 лет МФТИ

Форум — Talks

Поздравляю всех причастных, сочувствующих и пострадавших.

 , физтех

grem
()

Подскажите шрифт

Форум — Talks

Подскажите, что за шрифт используется здесь: https://forums.pcbsd.org/thread-15719.html

 

grem
()

(Debian/Ubuntu/Mint) Вручную установленные пакеты (попытка 2)

Форум — General

Так как предыдущая тема уже давно помещена в архив, то создам новую.

Может кто-нибудь проверить для Ubuntu/Mint, похож ли вывод следующих команд на что-то адекватное в плане вывода списка пакетов установленных самим пользователем вручную?

$ zgrep "Package:" /var/log/installer/initial-status.gz | cut -d" " -f2 | sort > initpkgs.txt
$ apt-mark showmanual | sort > markedpkgs.txt
$ grep -f initpkgs.txt -vFx markedpkgs.txt

если grep в последней команде не нравится, то можно и diff (порядок файлов для него другой)

$ diff --suppress-common-lines markedpkgs.txt initpkgs.txt | grep "<" | cut -d" " -f2

Для Debian, похоже, нужно мотреть файл /var/log/installer/status

Также интересно, включаются ли сюда пакеты вручную поставленные через dpkg -i?

 , , ,

grem
()

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