Перейти к содержанию
    

Вброс .... на вентелятор.

Столкнулся с одним кодом.... предлагается в 5 шагов поднять обмен по LoRa чуть-ли не с нулевым порогом вхождения в программирование... есть проект LowCostLoRaGw.

 

Конечно всё шоколадно. На проводочках ардуино+рфм95 и распбери+рфм95, по 5 шагов и вот тебе готовая система сбора данных. На базе Sx1272.cpp даже есть библа для абдурино ардуино.

 

Решил велосипед не изобретать и портировать этот код себе, благо дело сырци есть. Компилятор дал тонну ворнингов. Я уже молчу за такой код

bool SerialPi::find(const char *target){
    findUntil(target,NULL);
}

я уже молча испоравляю ворнинги где int сравнивается с unsigned int. Но не удержаляся после подобнойго кода (благо дело ворнинг показал)

/* Prints data to the serial port as human-readable ASCII text followed
* by a carriage retrun character '\r' and a newline character '\n' */
void SerialPi::println(float f, int precission){
    const char *str1="%.";
    char * str2;
    char * str3;
    char * message;
    sprintf(str2,"%df",precission);             //ошибка
    asprintf(&str3,"%s%s",str1,str2);               //утечка памяти
    sprintf(message,str3,f);                     //ошибка

    const char *newline="\r\n";
    char * msg = NULL;
    asprintf(&msg,"%s%s",message,newline);              //утечка памяти
    unistd::write(sd,msg,strlen(msg));
}

Всё это великолепие есть тут

автор проекта какой-то индус CongDuc Pham

автор этого кода, судя по коментам в файле arduPi_pi2.cpp некая Libelium Comunicaciones Distribuidas

 

на сайте Libelium чего только нет. И для автомобилей что-то делают, и для сетей, и для МЕДИЦИНЫ!!! И такой говнокод пишут. УЖАС!!!

 

Весь arduPi_pi2.cpp исчерпан вызовами asprintf() и ни разу нет вызова free(). Конечно без free такой код будет работать, за каждый вызов будет утекать несколько байт памяти. Но сколько времени непрерывно проработает такой шлюз? неделю? Месяц? Год? Не удевляюсь, почему винда, после недели непрерывной работы начинает тормозить и съедает 8 Гб озу с закрытыми приложениями. А потом начинаются срачи на темы, типа "Почему до сих пор все сидят на древних языках вроде С и С++", и что с++ говноязык, а жава тру!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вброс .... на вентелятор.

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

Вот задам Вам один вопрос: С какой целью Вы ходите на работу?

 

А с какой целью выкладывается "почти рабочий код"? Да с той же самой, чтобы продавать рабочий код... Почему Вы считаете, что кто-то будет выкладывать полностью рабочий код "за просто так"? А жить им на что?

Берется сайт "открытых проектов" и туда выкладывается "вот что мы можем".. И далее: "А хотите, чтобы работало на самом деле, а не в демо режиме, так вот почтовый адрес, обращайтесь"...

Вот кругом все умные, а индусы - дураки... Да вот только "умные, но бедные"... А у индусов - своя кремниевая долина...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё это великолепие есть тут

Для github-а это просто идеальный проект.

Все познается в сравнении.

Покажите свой код на github.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему Вы считаете, что кто-то будет выкладывать полностью рабочий код "за просто так"?
Ну выкладывают же. linux, gcc, много опенсорса. Например, чтоб продвигать технологию и продавать железо. Но врятли авторы этого кода хотели увеличить объем продаж микросхем Лора.

А зачем выкладывать такой код? Хочешь заработать на коде - пиши закрытый код. Хочешь заработать на построении системы сбора данных - занимайся разработкой системы под ключ используя дешевые чипы и самописный рабочий код.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вы пока не доказали, что код нерабочий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы пока не доказали, что код нерабочий.

Это рабочий код чтоли?

    sprintf(str2,"%df",precission);             //ошибка
    asprintf(&str3,"%s%s",str1,str2);               //утечка памяти
    sprintf(message,str3,f);                     //ошибка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это рабочий код чтоли?

    sprintf(str2,"%df",precission);             //ошибка
    asprintf(&str3,"%s%s",str1,str2);               //утечка памяти
    sprintf(message,str3,f);                     //ошибка

Это код ни о чем. Может быть макрос, может переопределение, может либа специальная.

Какие ваши доказательства? ©

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну выкладывают же. linux, gcc, много опенсорса. Например, чтоб продвигать технологию и продавать железо. Но врятли авторы этого кода хотели увеличить объем продаж микросхем Лора.

А зачем выкладывать такой код? Хочешь заработать на коде - пиши закрытый код. Хочешь заработать на построении системы сбора данных - занимайся разработкой системы под ключ используя дешевые чипы и самописный рабочий код.

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

Давайте я напишу мой личный взгляд на это.

Рабочее время - это товар. Чтобы его выгодно продать, нужно показать характеристики этого товара.

Вот скажите, кто о Ваших рабочих навыках знает, кроме Вашего начальника? Кто может их подтвердить? Для большинства российских инженеров ответ будет такой: никто. И приходя на новое место работы Вы не можете подтвердить свои навыки и умения. И хорошо если интервьюер на новом месте работы попадется грамотный. А если нет?

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

А конкретно в данном случае авторами могут быть и студенты или даже школьники. Им дали "попробовать", вот они и выложили результат. И ничего более. Скажем наш студент идет подработать в Макдональс или разносчиком пиццы, чтобы купить стартовый набор или оплатить дополнительные лекции. Австралиец - делает пяток стартовых наборов. Один - себе и остальные на продажу. Известна история, где девушка студентка открыла фирму и они продавали наборы деталей для батареечного питания смартфонов. Ну просто у них другой взгляд на жизнь. Наши преподы в универах плачут о невозможности и об отсутствии. А "ихние" преподы - создали Диджилент и сотни универов получили дешевые стартовые наборы для Ксайлинкса...

Вывод: "статья" пишется не для " если там умышленно предлагается использовать нерабочий код", а для "публичности"... И "статья" - не ЦЕЛЬ для "кода", а СРЕДСТВО получить работу.

Вот в этом - и есть вся разница...

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это код ни о чем. Может быть макрос, может переопределение, может либа специальная.

Какие ваши доказательства? ©

Доказательства ссылка на гитхаб. Нет там макрасов и переопределений, нет там специальных либ. sprintf и asprintf из состава stdio.h

gcc из коробки.

 

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

 

/*

* Copyright © 2012 Libelium Comunicaciones Distribuidas S.L.

* http://www.libelium.com

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Тут есть еще один фактор.

Первым через Ламанш перелетел Блерио.

https://ru.wikipedia.org/wiki/%D0%91%D0%BB%...%9B%D1%83%D0%B8

А второго никто не помнит.

Если есть ниша не рынке, то ее надо "засветить" и занять как можно раньше. Для этого годятся даже "полуфабрикаты". Так же, как и бесплатные Бета-версии продуктов. Вот купил я себе сетевой винчестр WD "белое облако". Один раз сдал в обмен железо, пару раз переустановил софт. И вот теперь работает нормально...

Ну а Либериум? Ну и что? Вот у нас в Питере "Метротек" и они набирают студентов и обучают их Верилогу и микроконтроллерам. Чтобы потом взять их на работу. Вполне возможно, что и у Либериума что-то похожее на это. Да, фирма получает "почти работающий код", который не жалко выложить. И под это получить первые контакты с клиентами и первые заказы. Будут заказы - будет и доработка кода до рабочего. Не будет заказов - займутся другим направлением.

А чисто по жизни... Не нравится, как пишут индусы? Ну так сами напишите статью - "как я разбирался с индусским кодом"...Или то, что считаете наиболее интересным. Если получится, то мы напечатаем. Сами же наши инженеры ленивые, потому и статей русскоязычных мало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут есть еще один фактор.
я вашу точку зрения понял. не соглашусь с ней. Можно написать демо-код и опубликовать результат. показать возможность этой системы. всё дёшево и сердито. Для непосвещённых это выглядит круто: на проводках скрестил малину с рфм95 и закинул в дропбокс за 15 баксов сделал шлюз, за 5 баксов конечное устройство. Даже сайт писать не нужно. С любой точки мира можно графики температуры смотреть. Если кому-то это нужно будет - будут заказы.

но писать такое и публиковать:

     char * str2;
    sprintf(str2,"%df",precission);

эээээ.... ну хочешь продать себя как программиста - покажи результат, результат достаточно крутой. Хочешь продать систему - покажи результат. Ну такую лажу в сырцах зачем публиковать? Чтоб работодатель посмотрел исходник и оценил тебя как говнопрограммиста?

 

Первым через Ламанш перелетел Блерио.

А второго никто не помнит.

не аргумент. первым (мс-)дос написал Тимом Патерсоном. Его ни кто не помнит. Зато Бил Гейтса и MS-DOS все знают.

MS-DOS является переименованной версией 86-DOS, написанной Тимом Патерсоном

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я вашу точку зрения понял. не соглашусь с ней.

 

не аргумент. первым (мс-)дос написал Тимом Патерсоном. Его ни кто не помнит. Зато Бил Гейтса и MS-DOS все знают.

Так Вы сами подтверждаете мои слова. Выигрывает не тот, кто "написал", а тот, кто сумел "продать" эту тему....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вброс .... на вентелятор.

...

 

всякое бывает.

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

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

 

Скорее всего писали студенты, как курсач для препода. Уровень именно такой.

Не оптимизированный разбор строк, не освобождение ресурсов, с логикой не всё в порядке...

короче мрак. пришлось отказаться.

 

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

где приёмка для жизнеобоспечения...

И индусы тут увы не всегда худшее. Есть и на наших просторах деятели.

 

удачи усем

(круглый)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для github-а это просто идеальный проект.

К сожалению, да: многие на гитхаб выкладывают совершенно нерабочие вещи. Но на то он и гитхаб: есть багтрекер, и все можно высказать автору.

 

Насчет printf: как по мне, так использование такой жути, как printf, malloc и т.п. оправдано лишь в "жирных" микроконтроллерах. В обычных (вроде STM32F0/1/2/3/4) им не место. Аналогично с плавающей точкой: если нет в камне их аппаратной поддержки, нечего их туда лепить! Иначе получается абдуринщество чистой воды!

Изменено пользователем Эдди

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...