LINUX.ORG.RU

Сообщения chuemir

 

Cлинковать обьектный файл в котором уже есть main в свою программу

 , ,

Допустим, есть файлы tool.cpp, tool.h и my_tool.cpp

Где в tool.h объявлены какие-то вспомогательные функции, которые реализованы в tool.cpp. Кроме того, в tool.cpp есть main.

В my_tool.cpp мне хочется использовать все эти замечательные функции из tool.h, однако имеющийся там main мешается.

Решения здорового человека в «духе перетащить все функции в хедер», вынести main из tool.cpp понятны и разумны, но можно ли как-то сказать линкеру чтобы вместо

multiple definition of `main'; my_tool.cpp:19: first defined here

Он просто взял конкретный main, а второй выкинул?

P.S. Если собирать через afl-cc, то проблемы с линкером нет, левый main не участвует. Я посмотрел какие флаги он добавляет, но там ничего похоже нет, просто свои символы еще.

chuemir
()

Стыдно за Rust community

 , ,

Гитхаб подкинул в рекомендациях rust репозиторий:

https://github.com/travisbrown/octocrabby

Это насколько же двинутым надо быть, чтобы не полениться создать подобное?

chuemir
()

Matplotlib раскрасить область под кривой в зависимости от параметра

 , ,

Вопрос тупой, но в pandas и matplotlib нуб, а гугл пока нормально спросить не получается (подсовывает как раскрашивать сами кривые).

Есть csv file, в котором timestamp, some_value, boolean_parameter.

Надо нарисовать график some_value от времени, при этом как-то наглядно пометив состояние boolean_parameter. Идеально было бы покрасить область где boolean_parameter=1 в какой-нибудь цвет.

Вопрос как это сделать? Решение с другими инструментами - ок, просто показалось что эти наиболее подходящие.

Без пометки цветом сейчас делаю примерно вот так (примерно, потому что это в jupyter notebook)

import matplotlib.pyplot as plt
import pandas as pd

from pylab import rcParams
rcParams['figure.figsize'] = 15, 15

data = pd.read_csv('input.csv', skipinitialspace=True)
info = p_data.set_index('timestamp').T
info.loc['some_value'].plot()
chuemir
()

RMS будет в москве?

 ,

Обнаружил вот такую интересную новость:

https://www.fsf.org/events/rms-20190827-moscow

Облазил сайт этого политеха, никакого упоминания, в гугле тоже пусто. Может у кого есть инсайдерская информация? Интересно сходить послушать пророка вживую.

Что можно за этим сьездить в Питер знаю, интересна московская возможность.

chuemir
()

Не используется DEBIAN/config при установке пакета

 , ,

Всем привет.

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

Если я делаю это в postinst - все работает, но в мане (debconf-devel) рекомендуется настоятельно делать все в config. И вот этот самый конфиг упорно не запускается ни как при установке. Пакет собираю при помощи fakeroot dpkg-deb --build $DIST, где последнее собственно директория с DEBIAN/config и прочим.

права на config 0755.

Где я туплю?

P.S. Собственно я даже не встречал кажется программ которые так делают и понимаю, что можно положить config.example куда-нибудь, а потом юзер сам скопирует и поправит. Но из спортивного интереса хотелось бы все-таки добить начатое.

chuemir
()

Кастомный Setup.hs в hashell программе

 , ,

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

Собственно ситуация:

Написал утилиту на haskell для работы с api малоизвестного сайта. Все замечательно, но есть две проблемы, которые хотелось бы решить.

  • Ключи для api хранить в исходниках, если они открыты не очень хорошо. Как можно красиво и идиоматично подставлять их перед компиляцией? Сейчас я компилирую просто stack build, и мне кажется что писать какой-то внешний скрипт, который будет подставлять ключи в код, а потом уже запускать stack build это ужасный костыль.
  • Хочется собирать пакеты для разных дистрибутивов при компиляции сразу. (желательно, конечно по дополнительной опции) Опять же, как это «правильно» делать?

Сейчас build-type: Simple в cabal файле. Я думал сделать custom и написать соответственно код в Setup.hs который все это делает внутри. Но смущает, что нигде нет ни мануалов, ни примеров, ни вообще упоминаний что это будет работать cо stack.

Есть например https://hackage.haskell.org/package/cabal-debian - но это внешняя утилита, как я понял.

Еще есть shake. Его стоит использовать? И если да, то как?

  • Как нечто внешнее, что буду использовать в итоге вместо stack test/build/install? Т.е. сначала подставить ключи в шаблоны, потом скомпилировать вызвав stack, а потом собрав пакеты мне нужные?
  • Или его можно встроить в Setup.hs?

Во первом случае смущает, что другому человеку будет трудно все скомпилять, увидев велосипед вместо стандартного stack install. Во втором, я вообще не уверен что это возможно так если честно. Иначе почему так никто не делает?

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

chuemir
()

f11 в i3 в мяте убрать «стандартный» биндинг с клавиши

 , , ,

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

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

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

Пробовал биндить в i3 ф11 на ноп. Сработало на 100% f11 ничего не делает.

В .xbindkeysrc - ничего такого нет. В .Xmodmap - тоже.

Кто еще может перехватывать эту клавишу? Или может есть возможность вдруг есть в самом досбоксовском дебаггере свои биндинги сделать? Пока не пробовал, но вот http://www.dosbox.com/wiki/KeyMapper эта штука для дебаггера встроенного тоже работает, или только на сам досбокс, кто-нибудь может знает?

А в целом меня устроит любой workaround кроме банальных извращений, вроде использования досбокса в виртуалке, доса там же (если ничего другого не получится, то воспользуюсь, конечно одним из них), или же смены дистра на «правильный», где таких проблем возникнуть не может.

chuemir
()

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