LINUX.ORG.RU

Сообщения mkam

 

Артефакты в терминале

Форум — Desktop

Привет. Решил накатить на свой ноутбук (Lenovo L380) Kubuntu 19.04.
Вроде как всё более менее работоспособно, но наблюдаю артефакты в некоторых консольных приложениях - htop, mc.
Выглядит это примерно так — https://ibb.co/bWhYZtf
Быстрый поиск в гугле ничего путного не выдал. Как такое фиксить?

 , ,

mkam ()

Motorola Solutions в СПб

Форум — Talks

Господа, а кому-нибудь доводилось работать в сабже? Какие впечатления остались?

 

mkam ()

Подавить предупреждение initialization from incompatible pointer type

Форум — Development

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

warning: initialization from incompatible pointer type


Неудобно выискивать предупреждения, относящиеся к своему коду.
гцц позволяет отключать предупреждения — https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/Diagnostic-Pragmas.html#Diagnost...

Судя по


Note that not all diagnostics are modifiable; at the moment only warnings (normally controlled by ‘-W...’) can be controlled, and not all of them. Use -fdiagnostics-show-option to determine which diagnostics are controllable and which option controls them.


данное предупреждение отключить не получится, потому что компилятор не выдал название опции для этого предупреждения при компиляции с -fdiagnostics-show-option.

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

 

mkam ()

Инициализация списка unique_ptr<> средствами initializer_list<>

Форум — Development

Господа, а расскажите как правильно инициализировать список unique_ptr. Хотелось бы использовать что-то похожее на

std::list<std::unique_ptr<int>>
  ints{std::unique_ptr<int>(new int), std::unique_ptr<int>(new int)};

 

mkam ()

Хром под онтопик будет собираться c использованием Clang

Форум — Talks

В листе разработчиков Clang сообщение прилетело. Решил поделиться с ЛОРом.


Hi,

As of Chrome m38, which shipped to stable a bit over a month ago, we are using clang as our production compiler for Linux – meaning that the bits we ship to users on Linux are now created by clang. It's now also our default host compiler for Chrome/Android builds (the target compiler is still gcc). We used to use gcc 4.6 before. Maybe this is interesting to others, hence this (somewhat belated) announcement.

We're using the same model we use on OS X: We use a pinned clang revision without any changes (these days, we sometimes cherrypick a few newer versions every now and then) that we update to ~trunk every few weeks.

The switch went off without larger problems, except one: The linux binaries that clang produces by default don't run on older 32-bit debians, an issue that we didn't find until our stable release. This is due to clang making assumptions about alignment that aren't true on 32-bit in practice. We worked around this and got an updated stable out relatively quickly, but producing broken 32-bit binaries by default is a great opportunity for improvement :-) I filed http://llvm.org/PR21414 for this.

With the switch to clang, binary size dropped about 8% while performance mostly stayed the same. Startup time improved a bit, some microbenchmarks got faster, others got slower (I debugged the biggest slowdown, that turned out to be a benchmark bug). If you're interested https://chromeperf.appspot.com/group_report?rev=282246 has details, ignore all rows that aren't for «linux-release» or «chromium-rel-linux». page_cycler.tough_layout_cases for example got 2.5% faster, which is nice.

Thanks everyone for all your work building such a great compiler!

Nico



Для неосиливших ангельский: бинарник похудел на 8%, производительность практически не изменилась. Циферки здесь - https://chromeperf.appspot.com/group_report?rev=282246

 ,

mkam ()

lldb выдает ассемблерный листинг

Форум — Development

Господа, доброй ночи. Пытаюсь подружиться с lldb, но он всё противится.

В частности собрал llvm + lldb + clang версии 3.4. Отладчик запускается если ему указать где найти liblldb.so. А вот дальше при выполнении шага выплёвывает ассемблерный код.

mkam@localhost /var/tmp/portage/llvm $ ~/opt/clang-3.4.2-release/bin/clang++ -g main.cpp
mkam@localhost /var/tmp/portage/llvm $ ~/opt/clang-3.4.2-release/bin/lldb ./a.out 
Current executable set to './a.out' (x86_64).
(lldb) list
   4   	{
   5   	    std::cout << "Fuck off, World" << std::endl;
   6   	
   7   	    return 0;
   8   	}
(lldb) process launch --stop-at-entry 
Process 9907 launched: './a.out' (x86_64)
Process 9907 launching
Process 9907 stopped
* thread #1: tid = 9907, 0x00007fa430b69400, name = 'a.out', stop reason = trace
    frame #0: 0x00007fa430b69400
-> 0x7fa430b69400:  movq   %rsp, %rdi
   0x7fa430b69403:  callq  0x7fa430b6c9e0
   0x7fa430b69408:  movq   %rax, %r12
   0x7fa430b6940b:  movl   0x21f8c7(%rip), %eax
(lldb) thread step-over 
Process 9907 stopped
* thread #1: tid = 9907, 0x00007fa430b69403, name = 'a.out', stop reason = instruction step over
    frame #0: 0x00007fa430b69403
-> 0x7fa430b69403:  callq  0x7fa430b6c9e0
   0x7fa430b69408:  movq   %rax, %r12
   0x7fa430b6940b:  movl   0x21f8c7(%rip), %eax
   0x7fa430b69411:  popq   %rdx

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

 ,

mkam ()

Хочется странной работы

Форум — Talks

Лор, очень хочется странного. Смотрю на фотографии Камчатки, Кольского полуострова, Земли Франца Иосифа, Новой Земли и хочется туда на годик. Подальше от человеков. В суровый мужской климат, от которого волосы на груди становятся гуще и жостче. Ютиться в какой-нибудь метеорологической станции, читать книги, пейсать кот и играться с паяльником. Романтика.

Собственно конкретизирую. Хочу найти «непыльную» работёнку в живописных аналах нашей Родины. Море, горы, скалы, озёра, снега приветствуются. Работёнка не плана ишачить по 8-12 часов, а что бы оставалось достаточно времени на те же книги и код. ЗП нужна только для того, чтобы там выживать — жильё (если не предоставляется) и жрать. Люди не нужны. Нужна формальная официальная плохо оплачиваемая работа на севере, при которой достаточно времени на собственные интересы. И минимум людей. Хотя, стоит отметить, что каким-нибудь сторожем и водителем идти не хочется.
Знаю, что здесь есть ЛОРовцы из мест не столь отдалённых от аналов — помнится в Job был пост от человека из Петропавловск-Камчатского. Возможно они смогут направить мои поиски в нужное русло. Я вообще хз, что искать и стоит ли вообще на что-то подобное рассчитывать.

Гуглил вакансии. Нашёл Федеральное государственное бюджетное учреждение «МУРМАНСКОЕ УПРАВЛЕНИЕ ПО ГИДРОМЕТЕОРОЛОГИИ И МОНИТОРИНГУ ОКРУЖАЮЩЕЙ СРЕДЫ» и открытые позиции - http://www.kolgimet.ru/index.php?option=com_content&view=article&id=2...
Из умений и навыков, к сожалению, отсутствуют навыки гидро/метео/гео и прочих соответствующих логий. Но в трудовом стаже есть год работы в области АСУ ТП. Может с помощью этого можно как-то зацепиться.

Собственно реквестирую истории успеха, наводки и предложения.

mkam ()

qFatal() и Q_ASSERT_X

Форум — Development

Господа, просветите пожалуйста по поводу макроса Q_ASSERT_X.

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

  if ((mdl = DBController->model(DBRevisionController::Specific, db)) == NULL ||
      mdl->rowCount() > 1)
    Q_ASSERT_X(false, "ArpDataModel::getArpMac()", "Invalid Specific model");

Ожидал после срабатывания макроса увидеть сообщения указанные в качестве аргументов. Не увидел. Получил только сообщение о том, что сгенерирован дамп (который я тоже нигде не наблюдаю). Открыл документацию.

void Q_ASSERT_X ( bool test, const char * where, const char * what )

Prints the message what together with the location where, the source file name and line number if test is false.

***

If b is zero, the Q_ASSERT_X statement will output the following message using the qFatal() function...

Смотрю, что пишут про qFatal()

void qFatal ( const char * msg, ... )

Calls the message handler with the fatal message msg. If no message handler has been installed, the message is printed to stderr...

Однако app 2> err.log тоже не дал каких-либо результатов. Запускал отладочную сборку.

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

 

mkam ()

Получение и обработка данных используя QTcpSocket

Форум — Development

Господа, добрый день. Возникла одна проблема, которую не получается решить в силу отсутствия соответствующий познаний о Qt.

Есть примерно следующий код:

class DataProcessing : public QObject
{
Q_OBJECT
public:
    void data(); //Получаем и сохраняем данные
    void processing() {/*Обработка полученных данных*/}
private:
    RemoteDate ds; //Класс для работы с сервером посредством QTcpSocket
    char* buffer; //Буфер для данных сервера
}

void DataProcessing::data()
{
    //Какой-то код

    ds.getData(buffer); //Получаем данные от удаленного сервера

    //Снова какой-то код
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    DataProcessing dp;
 
    dp->data();
    dp->processing();
 
    return a.exec();
}

Суть в том, что необходимо получить данные от удаленного сервера. Класс RemoteData производит всю процедуру обмена сообщениями и получения нужных данных от сервера в функции getData(char*), используя для этого класс QTcpSocket. После того, как данные получены, их необходимо обработать функцией processing().

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

На StackOverflow находил возможное решение данный проблемы. В кратце решение выглядело так:

void DataProcessing::data()
{
    //Какой-то код
    QEventLoop qel;
    QObject::connect(&dp, SIGNAL(proceed()), &qel, SLOT(quit()));

    ds.getData(buffer); //Получаем данные от удаленного сервера

    qel.exec(); 
    
    //Снова какой-то код
}
Собственно решение работает, но я сильно сомневаюсь в его корректности и подозреваю, что есть более элегантные решения. И стоит добавить, что функций получения данных от сервера может быть намного больше, в зависимости от того, что именно требуется получить. В связи с этим у меня два вопроса:

1) Как правильно отложить функцию обработки данных до момента пока эти самые данные не будут получены полностью?

2) Создавая QEventLoop мы блокируем обработку других события только для объекта, где QEventLoop был создан? Или инкапсулируя этот объект в другой (Yobj), унаследованный от QObject, мы блокируем обработку событий и этого Yobj?

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

PS. Класс DataProcessing будет включаться в другие классы. Здесь в main() он расположен сугубо для демонстрации.

 ,

mkam ()

Stolen Qt. Что это?

Форум — Talks

Просматривал статью про SCADA Trace Mode в Вики. В статье есть строка «Написана на stolen Qt». Собственно, что это такое?

 

mkam ()

Купил паяльник...

Форум — Talks

ЛОР, так уж получилось, что в сознательной жизни не приходилось орудовать паяльником и захотелось сей факт исправить.
Поэтому было решено пройтись по некоторым тематическим магазинам моего любимого и славного города, дабы приобрести необходимый минимум. Были приобретены:
1) паяльник отечественного производства на 40 ватт и запасное жало;
2) баночка канифоли;
3) баночка, как оказалось в последствии, просроченного флюса ЛТИ-120;
4) метр припоя ПОС-61 с сечением 1.0 мм;
5) унылая пустая макетная плата (травить самому пока что лень, займусь этим через пару дней, как найду интересное устройство и схему);
6) десяток резисторов, на которых я и буду тренироваться, впаивая их в макетную плату.

Моя цель на данный момент - печатный монтаж. Дальше планирую уходить в МК и поверхностный монтаж. Но это если втянусь.

Собственно возник ряд вопросов.
Во-первых, как выше отмечено, ЛТИ-120 мне продали просроченный. Это не такая большая проблема, но осадочек есть. В связи с чем вопрос - а можно мелочёвку покупать на dealextreme и/или aliexpress? Под мелочевкой подразумеваются те же резисторы/конденсаторы/диоды/etc, пинцеты/бокорезы, монтажные платы/текстолит, флюс. Так же интересует припой. DIHALT почему-то ругался на отечественный ПОС-61 и рекомендовал использовать припой от зарубежных производителей. У нас зарубежные производители начинаются от 800 рублей за катушку 500 гр. Деньги, конечно, не особо большие, но если не втянешься, то катушка будет просто покрываться слоем пыли. В добавок к этому, я не нашёл отечественный припой менее 1 мм поперечного среза. Что без опаски можно покупать у китайцев?
К слову, в одной точке лежит китайский паяльник за ~900, который продают на aliexpress в 2 раза дешевле.

И во-вторых, а что делать с этой макетной платой? Как извлечь из неё профит? Элементы соединяются проводом или как? Я что-то вообще не пойму как её пользовать.

 

mkam ()

Цены девайса у них и у нас

Форум — Talks

ЛОР, читаю описание нового смартфона от Нокии. Последний абзац:

Nokia Lumia 620 ожидается в продаже в России в первом квартале 2013 года. Модель будет доступна в салатовом, пурпурном, желтом, белом и черном цветах. Ориентировочная розничная цена Nokia Lumia 620 в России — 11 990 рублей (в США — $249).


Объясните мне, почему в нашей горячо любимой Родине, с такими живописными берёзками и речушками, девайс будет стоить на 100 загнивающих американских долларов дороже?

 ,

mkam ()

Вспомнить сериал

Форум — Talks

Крутили по русскому Nickelodeon в начале 2000-х сериал про собаку по имени Вижбо. Напомните название, нагуглить я ничего не могу.

 

mkam ()

Развитие анализа

Форум — Talks

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

 

mkam ()

Зарплата сотрудников ВУЗа

Форум — Talks

Тут вроде как люди из университетской среды есть. Можете рассказать как и сколько получают ассистенты/преподы ВУЗов?

mkam ()

Разложение в ряд Фурье

Форум — Talks

Читал сегодня книгу «Основы теории вейвлетов. Вейвлеты в MATLAB» господина Смоленцева. Так как в матане я не шибко силен, то сломался уже на первом примере. Собственно сам пример - https://dl.dropbox.com/u/13814019/f.png
Можете показать последовательность получения коэффициентов? Я не представляю как интегрируется данная функция.

 ,

mkam ()

Песни про жирных людей

Форум — Talks

ЛОР, а посоветуй песен про толстых людей, чтобы их слушая, толстые люди себя немного неуютно ощущали.
Пример: Цирюльня им. Котовского – Жирный (Про Демьяна)

 ,

mkam ()

Отправка сигналов из треда

Форум — Development

Подскажите пожалуйста, как мне объявить и выслать сигнал из класса, наследуемого от Thread?

Необходимо в треде производить некоторые расчёты и периодически выводить результаты в QTextEdit другого треда.

 ,

mkam ()

Выбор структуры нейронной сети при помощи генетических алгоритмов

Форум — Development

В интернете много упоминаний о том, что для решения задачи выбора структуры нейронной сети (НС) и подбора её параметров часто используют генетические алгоритмы (ГА).
Передо мной сейчас как раз стоит задача выбора параметров и структуры НС. Гуглил на тему применения ГА, но ничего конкретного так и не нашел. Лишь упоминания «да ГА используются», «мы использовали ГА» и тд. Но нигде не встретил какие параметры использовали в ГА, как определяли пригодность популяции.
Понятно, что гены содержали количество скрытых слоёв, количество нейронов, передаточная функция, скорость обучения (если возможно).
Мне НС нужна для прогнозирования временного ряда. Остановился на многослойном перцептроне. Для его реализации решил использовать FANN. И встрял на двух вопросах: 1) какие параметры использовать; 2) как определять пригодность.
Для первого вопроса пока остановился на: количество нейронов во входном слое; количество скрытых слоёв; количество нейронов в скрытом слое; скорость обучения; функция активации.
По второму вопросу какие-либо мысли пока что вообще отсутствуют.
Буду благодарен за помощь или тыкание носом в нужную бумажку. Спасибо.

mkam ()

[FreeBSD][Xorg]Не закапывается

Форум — Talks

http://miwi.bsdcrew.de/2012/02/working-on-xorg-stuff/

Для Ъ

As a result, Xorg gets 2 layers of framework. What this means, users with newer GFX hardware will get the chance to use newer Xorg server and drivers. The team has decided to create a new flag called WITH_NEW_XORG that users have to include in /etc/make.conf. This was mainly done for the intel KMS work being done. It should probably work for other chips. Unfortunately, the intel KMS driver will only work on FreeBSD 9-stable or 10-CURRENT users. Older version of FreeBSD will not be supported. Intel users will need to patch their src manually with Kib’s KMS kernel patch to get the newer chips to work. We have libGL and Mesa patches in our xorg-dev repo ready.

Here are some facts on what you will get with WITH_NEW_XORG:

libdrm 2.4.30 (including KMS support)
mesa 7.11.2
xorg-server 1.10.4
a lot of new Graphic Drivers.



Тыкал пару дней назад во Фряху палочкой ибо учащение случаев зависания этих ваших Линуксов на лэптопе с каждой новой версией ядра надоели. Сейчас в дали от цивилизации и нет возможности оценить работу с этим флагом. Есть желающие покрасноглазить и рассказать о результатах? Да и вообще интересно услышать от осведомлённых людей, что бсдшники думают делать с драйверами для видео.

mkam ()

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