LINUX.ORG.RU

[опять я] требуются разработчики в проект


0

2

Я уже пиарил здесь свое поделие, и меня отправили переписывать его с учетом разделения на две части (ядро, которое выводит информацию в консоль и гуй, который ее парсит). Я это сделал и теперь вернулся. Повторюсь, программа предназначена для сбора информации о софте и железе (как пример, lshw и hardinfo, хотя я равняюсь на Everest (ныне AIDA64)) , называется hardinform. Располагается на github: git://github.com/inish777/hardinform
Приветствуется как помощь в создании кода, так и советы (по читаемости кода, архитектуре, и прочее из опыта). Кастую amaora, который хотел написать несколько тестов производительности.

★★

Ответ на: комментарий от netcat

AIDA64 занимается еще и сбором информации, кстати великолепно это делая, что свидетельствует о немаловажности этой функции для ее разработчиков.

Вашу мать... Какая разница, что там делает AIDA64 и через какое место. Ты понимаешь, что программы, отвечающие на вопросы «какое железо стоит в этом ящике и что оно умеет?» и «какая производительность у этого железа в попугаях?» — это принципиально разные программы? Объединяет их только то, что второй можно подсовывать список оборудования из первой.

geekless ★★
()
Ответ на: комментарий от geekless

Разве не здорово узнать список всего-всего и что оно умеет, и тут же, если надо, проверить производительность этого всего-всего? Хотя, может быть я не прав. Мне просто Everest понравился, я решил такое-же запилить, но под *nix-системы и под GPL.

netcat ★★
() автор топика
Ответ на: комментарий от netcat

Здорово. И я уже второй раз пытаюсь тебе объяснить, как этос делать правильно. В прошлом треде ты не понял. Вижу, что и в этом не поймёшь.

geekless ★★
()
Ответ на: комментарий от netcat
гуй -> управляющая прослойка
       |   |
       |   +--> фреймворк для перечисления железок и их параметров
       +--> фреймворк бенчмаркинга
            |   |
            |   +--> юниты тестов
            +--> база данных
geekless ★★
()
Ответ на: комментарий от geekless

Тогда понятно. Признаться честно, очень хочется все самому написать. Синдром Поттеринга, что ли.

netcat ★★
() автор топика
Ответ на: комментарий от netcat

И в этот момент мы возвращаемся к тому, с чего начали:

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

geekless ★★
()
Ответ на: комментарий от netcat

Перечислитель устройств имеет смысл как консольная утилита. Бенчмаркинг имеет смысл как консольная утилита. Обвязка, их объединяющая, не имеет отдельного смысла. Поэтому она будет с гуём в одном процессе. Итого, 3 программы.

за время работы над программой я возненавидел парсинг

xml тебе в помощь.

geekless ★★
()
Ответ на: комментарий от geekless

Консольные программы выводят инфу в формате XML? Нет, к сожалению, не вариант. Мое творение должно выдавать читабельный вывод даже без гуя.

netcat ★★
() автор топика
Ответ на: комментарий от geekless

Мысль. Еще подумаю. Мы несколько затянули с полемикой, а работа над программой не ждет. Подождем, вдруг в тред заглянет еще кто-нибудь. Вон, сейчас snefjyent багов поймал - на его x64 моя поделка глючит (у меня же нет 64-битного проца, не тестировал). Вдруг еще кто подтянется и пойдем твои идеи воплощать. А я пока возможность настройки добавлю.

netcat ★★
() автор топика
Ответ на: комментарий от netcat

Посмотри сорцы утилиты catfish. Она на питоне и грузит gtk морду из glade-файла.

geekless ★★
()

Эпическая сила, а мемликов-то сколько!

Второй вопрос: glib не используется по религиозным соображениям? Иначе странно как-то: писать прогу на gtk, но не использовать glib.

akk ★★★★★
()
Ответ на: комментарий от netcat

А у кого она есть? Ты завязываешься на жтк3, но где твою программу можно будет запустить? Есть куча дистров в которых жтк2 есть, а жтк3 нету. И куча старых компов, которые не будут обновлять софт ради номера версии. Им хватает функционала. И для них твоя прога будет... доступной?

имхо:

для решения поставленной задачи уже есть инструменты - lshw, lspci, lsusb и пр. Если задача состоит в реализации гуя - то нужно сосредоточится на гуе, и использовать уже готовые, отлаженные, проверенные на разных платформах инструменты. Я бы как начинающий программист начинающему программисту посоветовал все же еще раз почитать про ООП и понять суть объектного подхода к программированию. Так значительно проще конструировать программы :) Затраченное время на изучение принесет больше дивидендов, чем педалирование кода с имеющимися знаниями, а затем его постепенное улучшение.

azure ★★
()
Ответ на: комментарий от azure

Ты завязываешься на жтк3, но где твою программу можно будет запустить? Есть куча дистров в которых жтк2 есть, а жтк3 нету. И куча старых компов, которые не будут обновлять софт ради номера версии. Им хватает функционала. И для них твоя прога будет... доступной?

Пока он её напишет, сменится еще по нескольку релизов в каждом дистрибутиве. Всё в порядке.

geekless ★★
()

Мужик, не обижайся, но это таки говнокод.

1. Память течёт ручьями.

2.

source_str[strlen (source_str) - 1] = '\0';
Этот шедевр зачем?

3.

/* Functions below are private functions of parse.c file. They are should not
be  used in other parts of hardinform-gui!!! */
Для этого существует static.

akk ★★★★★
()
Ответ на: комментарий от azure

теперь я вообще в растерянности. писать бэкенд, не писать...

netcat ★★
() автор топика
Ответ на: комментарий от geekless

я знаю, что дает его использование по отношению к переменным, но как он ограничивает использование функции?

netcat ★★
() автор топика
Ответ на: комментарий от netcat

А как надо? Работает же

Ну посмотри в дебагере или выведи на печать, что содержится в

source_str[strlen (source_str) - 1]

akk ★★★★★
()
Ответ на: комментарий от netcat

Что не так?

Нет, всё правильно. Это меня переклинило. Извини.

akk ★★★★★
()
Ответ на: комментарий от netcat

Простые переменные переписал, а итераторы то чего забыл?

void print_users_info (data* user_data)
{
 GtkTreeIter* user = (GtkTreeIter*) calloc (1, sizeof (GtkTreeIter));
    GtkTreeIter* uid = (GtkTreeIter*) calloc (1, sizeof (GtkTreeIter));
    GtkTreeIter* gid = (GtkTreeIter*) calloc (1, sizeof (GtkTreeIter));
    GtkTreeIter* home_dir = (GtkTreeIter*) calloc (1, sizeof (GtkTreeIter));
    GtkTreeIter* shell = (GtkTreeIter*) calloc (1, sizeof (GtkTreeIter));
    GtkTreeIter* comment = (GtkTreeIter*) calloc (1, sizeof (GtkTreeIter));
...
}
Ну ладно, выделить выделил, а освобождать кто будет?

xterro ★★★★★
()
Ответ на: комментарий от xterro

Кстати, если ТС так усиленно юзает кучу, мог бы макрос уже сделать что ли:

#define ALLOC(type, name) type* name = (type*) calloc (1, sizeof (type))

geekless ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.