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 подписка на новые темы