Многоуровневое меню для Ардуино и строкового ЖК дисплея 16x2

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

qwone,

да ладно Вам. У людей спор перешёл в философскую фазу, не сбивайте их, давайте лучше последим - интересно же! :)

Logik
Offline
Зарегистрирован: 05.08.2014

Ага qwone. Согласен на все 100. Возьму/невозьму - не сутьт,  суть о подходах к вопросу, я то начотдела разработки поработал, я б тоже не взял :)  ИМХО, осознание того что глюконуть может все и ошибка быть везде (свой код, чужой, либы, ОС, компилятор - без разницы) - важнейшая составляющая професианализма работника ИТ. И умение работать с учетом этого необходимо. Считать что учтено все и код будет работать всегда недопустимо.

Logik
Offline
Зарегистрирован: 05.08.2014

Так, господа, не подслушивать молча ))))

ПС. Как исчез эсэсовец, хоть поговорить можна, а то б нам ща доказывали что на STM таких проблем нет ))

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ЕвгенийП пишет:

qwone,

да ладно Вам. У людей спор перешёл в философскую фазу, не сбивайте их, давайте лучше последим - интересно же! :)

в беспредел приглашается профессиональный комментатор-рефери.

а, то я не пойму, какой счёт.

Logik
Offline
Зарегистрирован: 05.08.2014

1:1 

Мы не взяли друг друга в команды друг друга. Которых правда нет )))

ptr
Offline
Зарегистрирован: 28.05.2016

Logik пишет:

1:1 

Мы не взяли друг друга в команды друг друга. Которых правда нет )))

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

 

ptr
Offline
Зарегистрирован: 28.05.2016

qwone пишет:

Абсолютного надежного кода не существует.

Кто бы сомневался? Но существуют технологии и методики существенного уменьшения количества ошибок в коде. Причем уже оправдавшие себя десятилетиями опыта.

А в данном случае спор был о вечном:

Есть стандарт (даташит, ТУ) и есть использование недокументированной возможности (функции, частоты, тока). Logik считает использование недокументированых возможностей нормальной практикой. Я нет, так как неоднократно видел отрицательные последствия этого. Вот и все )

 

ptr
Offline
Зарегистрирован: 28.05.2016

Logik пишет:

Которых правда нет )))

Говорите про себя. Я сейчас и на РосСетях и в СУЭК. Разрываюсь между двумя проектами. И там, и там, профессиональных разработчиков не хватает катастрофически. А молодежь, которая приходит, пальцы веером, а сами ноль (

Если есть желание ко мне в команду - присылайте резюме: https://hh.ru/employer/622121

 

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ptr пишет:

Я сейчас и на РосСетях и в СУЭК. Разрываюсь между двумя проектами. И там, и там, профессиональных разработчиков не хватает катастрофически.

какие проблемы? - переманивайте у Гугла, Майкрософт и Епла.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

ptr пишет:
Есть стандарт (даташит, ТУ) и есть использование недокументированной возможности (функции, частоты, тока). Logik считает использование недокументированых возможностей нормальной практикой. Я нет, так как неоднократно видел отрицательные последствия этого. Вот и все )

Блин как в анекдоте

Разговаривают двое приятелей. 
«Вот все говорят: «Карузо! Карузо!» А я послушал – так ничего особенного»
 – «Вы слышали Карузо?!»
– «Нет. Мне Рабинович напел».

Если бы видели отрицательные последствия у Logik, то тогда да. Программы пишут программисты, и борятся с ошибками тоже программисты. И результат у каждого получается свой. Но не видя работы человека, а так же плачевный результат, и при этом заявлять так котегорично. Это сильно. Тут забегают уникумы, открывают темы : У меня программа не работает. При чем ни текста программы, и что она должна делать не пишут. Может это ваши клиенты. А мы вам работу отбиваем. Программисты- экстрасенсы здесь на форуме очень нужны. 

ПС: И все эти "печальные последствия" это бальный распил бюджета и выбить новое финансирование. 

ptr
Offline
Зарегистрирован: 28.05.2016

qwone пишет:

Если бы видели отрицательные последствия у Logik, то тогда да.

Logik в своем коде использовал недокументированную особенность функции memcpy(), что, кстати, сам признает. Что еще Вам надо?

ptr
Offline
Зарегистрирован: 28.05.2016

Клапауций 232 пишет:

какие проблемы? - переманивайте у Гугла, Майкрософт и Епла.

Спасибо, но индусов нам не надо. Уже столько раз в Майкрософт телеги катал на этот индийский код, что только его мне не хватало от своих же программистов )

 

Logik
Offline
Зарегистрирован: 05.08.2014

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

ptr
Offline
Зарегистрирован: 28.05.2016

Logik пишет:

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

К счастью, руководители в MS явно адекватней Вас и честно инициируют правки таких багов в очередном rollout update. Могут, конечно и год тянуть, редко - полтора. Но заявить, что "и так работает" не пытались ни разу )

Не верите? Просмотрите хотя бы те KB, которые к винде сыпятся. Половина из этой категории - на большинстве конфигураций работали и без исправления )

 

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

qwone пишет:

ПС: И все эти "печальные последствия" это бальный распил бюджета и выбить новое финансирование. 

Вы специалист в распиле бюджета и выбивании финансирования?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

ЕвгенийП пишет:

Вы специалист в распиле бюджета и выбивании финансирования?

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

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

qwone пишет:

ЕвгенийП пишет:

Вы специалист в распиле бюджета и выбивании финансирования?

К сожелению нет. 

В таком случае, не лучше ли воздержаться от высказываний типа как в посте №60?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ptr, уважаемый, я вот что заметить хочу:

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

Использовать недокументированную возможность или нет, тоже зависит от контекста.

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

----

Просто пример будет совсем конкретный и про Вас и про меня и про Логика и про Евгения.

Мы ведь на форуме Ардуино, так? Не Атмела, а Ардуино, так? Поскольку среда поддерживает не только Атмел контроллеры.

Среда нам ничего не говорит про порты контроллера. В рамках Ардуино НЕОБХОДИМО писать digitalWrite(pinxxx, HIGH), а не PORTB |= (1<<pin).

С точки зрения Ардуино - это НЕДОКУМЕНТИРОВАННАЯ возможность, поскольку документация на контроллер не является частью документации среды, так?. Но мы все так пишем и наш код не откомпилируется на Esp8266 или  Arm, в рамках Arduino IDE естественно, для поддерживаемых плат.

То есть мы все, и Вы в том числе, поступаем так, как РАЗУМНО, а не так, как положено, по Вашему мнению.

РОВНО таже ситуация с memcpy(). Логик точно знает, что на ЭТОЙ версии среды, для ЭТОГО контроллера - все работает.

ptr
Offline
Зарегистрирован: 28.05.2016

wdrakula пишет:

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

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

Ну еще рефлекс. Когда вертишь головой влево при повороте направо, даже если поворачиваешь на зеленый цвет )

Цитата:

Среда нам ничего не говорит про порты контроллера. В рамках Ардуино НЕОБХОДИМО писать digitalWrite(pinxxx, HIGH), а не PORTB |= (1<<pin).

Не утрируйте. С точки зрения Ардуино и sprintf() недокументированная функция что ли? )))
Кстати написано неправильно. Вы забыли запретить прерывания до и разрешить их после.

Да, первый код кроссплатформенный. Второй - нет. Но при правильном использовании препроцессора, он успешно будет работать и на ESP, и на ARM.
То есть, я пишу так:
 

asm volatile ( "cli");
_SFR_IO8(PIN_TO_PORTn_OFFSET(ST7735_CHIPSELECT_PIN)) |=  (1<<PIN_TO_PINn_BIT(ST7735_CHIPSELECT_PIN));
asm volatile ( "sei");

Цитата:

РОВНО таже ситуация с memcpy(). Логик точно знает, что на ЭТОЙ версии среды, для ЭТОГО контроллера - все работает.

Я тоже это знаю. Но буду писать в подобных ситуациях memmove() просто потому, что дополнительных усилий это не требует никаких, на производительность прогаммы почти не повлияет, но зато при миграции этого кода на другой проект и даже на другую платформу, мне лишние баги ловить не потребуется.

 

ptr
Offline
Зарегистрирован: 28.05.2016

К тому же Logik честно признался, что код писал еще под i8080: "Что работает последние 40 лет, лучше не трогать"  http://arduino.ru/forum/programmirovanie/mnogourovnevoe-menyu-dlya-arduino-i-strokovogo-zhk-displeya-16x2#comment-225203

40 лет назад, в 1976 году, других микропроцессоров просто не было.

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ptr! Уже глаза слипаются, но не могу не позанудствовать! ;)

Нет! cli и sei ненужны на Атмеле. Компилятор установку значения порта делает ОДНОЙ командой контроллера, не ДВЕ: чтение и запись, а одна - установка бита, что легко проверяется листингом..

Опять таки - это недокументировано ;););), но факт. Вокруг одной команды Вы, я очень надеюсь!, - скобки из  cli и sei ставить не станете?

Уж простите зануду...

ptr
Offline
Зарегистрирован: 28.05.2016

wdrakula пишет:

Нет! cli и sei ненужны на Атмеле. Компилятор установку значения порта делает ОДНОЙ командой контроллера, не ДВЕ: чтение и запись, а одна - установка бита, что легко проверяется листингом..

Легко проверяется. Проверьте, когда номер бита у вас в переменной, а не в константе )

 

ptr
Offline
Зарегистрирован: 28.05.2016

void setup() {
}

void loop() {
  static uint8_t i=0;

  if (i>7) i=0;
  PORTB|=(1<<i++);
}

 

 

   9:C:\Users\ptr.PD\Documents\Arduino\TFT_Tests\sketch_sep10b\sketch_sep10b.ino ****   PORTB|=(1<<i++);
  98               		.loc 1 9 0 is_stmt 1
  99 000c 2091 0000 		lds r18,_ZZ4loopE1i	 ;  D.4057, i
 100 0010 81E0      		ldi r24,lo8(1)	 ;  D.4057,
 101 0012 820F      		add r24,r18	 ;  D.4057, D.4057
 102 0014 8093 0000 		sts _ZZ4loopE1i,r24	 ;  i, D.4057
 103 0018 35B1      		in r19,0x5	 ;  D.4057, MEM[(volatile uint8_t *)37B]
 104 001a 81E0      		ldi r24,lo8(1)	 ;  tmp56,
 105 001c 90E0      		ldi r25,0	 ; 
 106 001e 00C0      		rjmp 2f
 107               		1:
 108 0020 880F      		lsl r24	 ;  D.4058
 109               		2:
 110 0022 2A95      		dec r18	 ;  D.4057
 111 0024 02F4      		brpl 1b
 112 0026 832B      		or r24,r19	 ;  D.4058, D.4057
 113 0028 85B9      		out 0x5,r24	 ;  MEM[(volatile uint8_t *)37B], D.4058
 114 002a 0895      		ret

 

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

qwone пишет:

Абсолютного надежного кода не существует.

Ваши сведения устарели. Закон Брукса уж две недели как отменён, так что теперь такой код вполне возможен :)))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ptr!

Так то уж да, конечно! ;) Если пин в переменной, то тут компилятор уж целый огород городит.

Но скетч для ардуино и большой проект - разные вещи. Скетч. чаще всего, пишет один человек, и он точно знает, есть ли в его коде прерывания, могущие поменять используемый порт. Если есть - он скобки (cli-sei) поставит, если нет - не поставит. Опять же аппелируя К РАЗУМУ, а не общим правилам. Если же проект пишут несколько человек, я полностью соглашусь - страховка не лишняя.

-----

Хотя тут я вынужден признать, что наша дискуссия - вопрос не профессии, но мировоззрения.

Вы, я пытаюсь гадать :) , вероятно, и весь луч обесточиваете, когда дома лампочку меняете, и, прости господи, ремни безопасности пристегиваете? ;) ;) ;)

Это совсем-совсем не укор! Б..же упаси! Я уважаю Вашу предусмотрительность. Просто это действительно разный взгляд на себя и на мир.

ptr
Offline
Зарегистрирован: 28.05.2016

wdrakula пишет:

Вы, я пытаюсь гадать :) , вероятно, и весь луч обесточиваете, когда дома лампочку меняете, и, прости господи, ремни безопасности пристегиваете? ;) ;) ;)

Это совсем-совсем не укор! Б..же упаси! Я уважаю Вашу предусмотрительность. Просто это действительно разный взгляд на себя и на мир.

Это, скорее, Вам в укор. Сдав на допуск к ремонту электроустановкок до 1 киловольта, я на такое насмотрелся, что купив кваритиру сразу же там электрику переделал. И да, под напряжением не работаю и другим не даю. С неисправным УЗО или без выравнивания потенциалов ветку не включу тоже.

И с места не тронусь, если пассажир даже на заднем сиденьи не пристегнут. И эта моя привычка уже однажды (лет 15 назад) жизнь дочке спасла. Машина была всмятку (газель в задницу без тормозов), но на дочке - ни царапины.

 

ptr
Offline
Зарегистрирован: 28.05.2016

wdrakula пишет:

ptr!

Так то уж да, конечно! ;) Если пин в переменной, то тут компилятор уж целый огород городит.

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

Совершенно уникальный случай. Особенно, в случае сектча, с которым уже точно, хотя бы arduino.h, написанный не Вами, будет включен в Ваш исходник. Ну и написать что-то на C не используя вообще хотя бы GLIBC возможно, но совершенно бессмысленное занятие. Так что пишет не один человек, не льстите себе )

А то получается, что Вы лицемерите. Сами используете чужой код в своем скетче, полагаясь на то, что он написан корректно, а свой код корректно писать не считаете нужным )

Есть множество правил и методик написания кода. Когда используешь какие-то из их, вырабатывается привычка, рефлекс, соблюдать их вне зависимости от того, сколь объемный проект делаешь. Я, кстати, считаю стиль программирования одним из важнейших показателей и по коду оцениваю профессионализм программиста.

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

 

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ptr пишет:

Спасибо, но индусов нам не надо. Уже столько раз в Майкрософт телеги катал на этот индийский код, что только его мне не хватало от своих же программистов )

отбирайте претендентов по национальному признаку, анализу ДНК и форме черепа - русских, например.

ptr
Offline
Зарегистрирован: 28.05.2016

Исходя из того, что один дед у меня русский, другой татарин, одна бабка еврейка, другая гречанка, а сам я вообще родом со Львова, то претензии в национализме не принимаются )

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

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ptr пишет:

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

кто тебе нассал в голову байку, что в Майкрософт работают исключительно индусы?

ptr
Offline
Зарегистрирован: 28.05.2016

Клапауций 232 пишет:

кто тебе нассал в голову байку, что в Майкрософт работают исключительно индусы?

Детка, когда научишься вежливо общаться и извинишься - я тебе отвечу.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ptr пишет:

Клапауций 232 пишет:

кто тебе нассал в голову байку, что в Майкрософт работают исключительно индусы?

Детка, когда научишься вежливо общаться и извинишься - я тебе отвечу.

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

а, у Эпла и Гугла почему не желаешь переманивать профессионалов в солнечный Сургут?

ptr
Offline
Зарегистрирован: 28.05.2016

Клапауций 232 пишет:

какой смысл с тобой вежливо общаться

Не научился, детка. Неучем остаешься )

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ptr пишет:

Клапауций 232 пишет:

какой смысл с тобой вежливо общаться

Не научился, детка. Неучем остаешься )

про индусов в Эпле и Гугле давай, потерпевший от дефицита прохфесаналов.

GarryC
Offline
Зарегистрирован: 08.08.2016

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

малознакомыми людьми - это принято делать с особой тщательностью. И не надо мне тут рылом целиться!
Клапауций 232
Offline
Зарегистрирован: 05.04.2016

GarryC пишет:

Выбирайте-ка выражения, молодой человек.

пля. ещё один телепат-воспитатель - если я молодой, то тебе триста лет.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

драку заказывали?

GarryC
Offline
Зарегистрирован: 08.08.2016

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

Logik
Offline
Зарегистрирован: 05.08.2014

ptr пишет:

К тому же Logik честно признался, что код писал еще под i8080

 

Ну заметно менше чем 40лет, но писал и на 580ИК80 и под СP/M и на черта лысого, например на TMS320. Перфокарты не застал к счастью.  И как думаете сколько написаного мной, и теми кого я лично знаю, кода нынче востребовано с тех времен. Называю точную цифру - 0. И дело не в его написании, а в задачах которые ставились. Например под ДОС написать часики реального времени, чтоб всегда, в любом приложении время в углу экрана было. Резиденты, INT9, INT13. Уже смешно? Кому щас есть дело до того соберется ли тот код? Я вобще не уверен что он сохранился. Или на DSP модем 2400 )). Этот на асме точно есть - потому что распечатан.

Точно также, и все ваше лет через 20 будет хламом способным только улыбнуть. Соберется ли оно со свежими либами даже проверять не будут. Не теште себя наивными надеждами, нетленка делается из камня))  Поскольку и методы и проблемы тогдашние мы себе даже представить не можем.

ПС. Вписал ща в код itoa, совершенно нестандартную, но неизменную. Вы за такое наверно просто увольняете)))

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

GarryC пишет:

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

классических фильмов - "знать"?

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

ptr
Offline
Зарегистрирован: 28.05.2016

Logik пишет:

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

ПС. Вписал ща в код itoa, совершенно нестандартную, но неизменную. Вы за такое наверно просто увольняете)))

Самокритично. У меня так часть кода, начиная с конца 80-х, до сих пор под рукой и востребована. То b-tree обходы и балансировки, то сжатие Хаффманом или LZW, то десятичная арифметика. Ассебмлеры, PL/I, COBOL, Fortran, SAS, Pascal повыкидывал уже. C, Perl и REXX еще храню, так как использую. Последний уже совсем редко. Видимо, все же зависит от того, что и как писалось )

Если буфер под itoa() выделен корректно, то возражений нет. memcpy() и memmove(), кстати тоже not safe. Однако они все управляемы. А вот за gets() точно по башке бы дал )

P.S. Ой! Про bash забыл. Без него то как?

 

Logik
Offline
Зарегистрирован: 05.08.2014

ptr пишет:

Logik пишет:

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

ПС. Вписал ща в код itoa, совершенно нестандартную, но неизменную. Вы за такое наверно просто увольняете)))

Самокритично. У меня так часть кода, начиная с конца 80-х, до сих пор под рукой и востребована. То b-tree обходы и балансировки, то сжатие Хаффманом или LZW, то десятичная арифметика. Ассебмлеры, PL/I, COBOL, Fortran, SAS, Pascal повыкидывал уже. C, Perl и REXX еще храню, так как использую. Последний уже совсем редко. Видимо, все же зависит от того, что и как писалось )

Если буфер под itoa() выделен корректно, то возражений нет. memcpy() и memmove(), кстати тоже not safe. Однако они все управляемы. А вот за gets() точно по башке бы дал )

P.S. Ой! Про bash забыл. Без него то как?

 

Так вы Хаффман, с того света или  bash писали? Мы тут вобще про свой код. Или Вы их переписывали, улучшали таксказать, вгоняли в стандарт. Шото за 30 лет ИТ сообщество не оценило преимущества полного соответствия стандарту Вашего кода. Вы публикуйте, сравним со свеженьким https://github.com/facebook/zstd или не очень свеженьким, но пока пожалуй лучшеньким http://ftp.gnu.org/gnu/gzip/ Все в открытую, все есть. Смысла использовать худшее?

 ))) memcpy() уже можна!  А с itoa() я Вас совсем не понял, функция даже не во всех версиях либ GCC есть, онож не соберется. Это непоследовательно!

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

GarryC
Offline
Зарегистрирован: 08.08.2016

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

ptr
Offline
Зарегистрирован: 28.05.2016

Logik пишет:

Так вы Хаффман, с того света или  bash писали?

Не понял вопроса. Хаффман имеет целую пачку модификаций. У меня болтается Vitter и чистый. Причем только для Vitter несколько вариантов с разной структурой деревьев. От плоской в массивах до связываемой указателями. Хаффман вообще очень сильно зависит от того, какие данные сжимаются. Порой выгодней не больше 7-15 слов в словаре держать, инициализируя дерево на 8-ом (16) новом слове.

bash это вообще то язык. И скриптов на нем у меня не мало уже накопилось.

Цитата:

Мы тут вобще про свой код. Или Вы их переписывали, улучшали таксказать, вгоняли в стандарт.

И я про свой. Что я должен был переписывать? Когда я первый раз Хаффманом на Синклере файлы на дискетте жал, я про GZIP и не слышал еше )

Цитата:

А с itoa() я Вас совсем не понял, функция даже не во всех версиях либ GCC есть, онож не соберется. Это непоследовательно!

Жаль что Вы столь... непонятливы. Мне казалось, что Вы несколько умнее. Я тут столько писал именно про безопасность и надежность кода. А до Вас дошло только что-то про стандарт и документированность. Отсутствие функции в бибилиотеке будет выявлено еще до выполнения. Скорее всего, на этапе компиляции. В крайнем случае, на этапе компоновки. То есть, на работоспособность исполняемого кода и на возникновение в программе трудноуловимых ошибок не повлияет вообще. Никак.

Цитата:

потому что выходят новые процы и оптимизация под них - не лишнее дело.

А мне оно надо? Математические алгоритмы GCC и LLVM уже сейчас умеют оптимизировать не хуже человека. Это уже как на счетах Excel проверять получиться )

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Logik пишет:

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

Точно также, и все ваше лет через 20 будет хламом способным только улыбнуть.

Говорим за себя.

Из того, что я писал и вводил а свое время с перфокарт, кое-что работает до сих пор. А это уже далеко не 20 лет.

Естественно, не для ПК. Впрочем, на ПК перфокарт никогда и не было. Даже для CP/M.

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Logik пишет:

Перфокарты не застал к счастью.  

Интересное понимание счастья.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Вы, ptr, немного не из того окна на ситуацию смотрите.

Я ведь полностью с Вами соглашусь, что учить нужно безопасному коду, по принципу "Делай хорошо, а плохо - оно само получится".

Вот сравнение - ученика водить машину учат четко по правилам.

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

Если человек не умеет управлять автомобилем без тормозов, на лысой резине, без печки и света, и на льду, то он, конечно, водитель, но не очень профессиональный, согласитесь?  А уметь это все, соблюдая правила - НЕВОЗМОЖНО.

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

=================================

Но дискуссия наша - между старыми дядьками, я еще с БК-0010 начинал, а Вы с Синклера, как я понимаю.

Мы все в другой весовой категории, и слышать менторские нотки - смешно. Ученику своему я бы сказал так же, как и Вы.

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

Logik
Offline
Зарегистрирован: 05.08.2014

ptr пишет:

Logik пишет:

Так вы Хаффман, с того света или  bash писали?

Не понял вопроса. Хаффман имеет целую пачку модификаций.дело.

О боже! Хаффман - человек. Вот этот - https://ru.wikipedia.org/wiki/Хаффман,_Дэвид

ПС. Слава КПСС - не человек.

ptr
Offline
Зарегистрирован: 28.05.2016

Logik пишет:

О боже! Хаффман - человек. Вот этот - https://ru.wikipedia.org/wiki/Хаффман,_Дэвид

Вы точно трезвы? Или это ваше обычое состояние? Я же писал выше, и Вы даже квотили "сжатие Хаффманом".

ptr
Offline
Зарегистрирован: 28.05.2016

wdrakula пишет:

Если человек не умеет управлять автомобилем без тормозов, на лысой резине, без печки и света, и на льду, то он, конечно, водитель, но не очень профессиональный, согласитесь?  А уметь это все, соблюдая правила - НЕВОЗМОЖНО.

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

Было бы желание и возможности, я бы продолжил и летом на автодроме. Тоже не нарушая ПДД.

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

Ну и Ваша оценка профессиональности водителя не по тому, в каком состоянии у него автомобиль и как часто он попадает в ДТП и получает письма счастья, а по тому, как он умеет управлять автомобилем, доведенным до состояния металлолома, мне не понятна.

Может быть у нас разные понятия о профессионализме водителя? Я так считаю профессионализмом, когда водитель за согласованное время может в целости и сохранности доставить груз и пассажиров из пункта А в пункт Б. Ведь именно в этом заключаются его профессиональные обязанности. Не правда ли?

P.S. Первым компьютером, который я сам собрал, был Синклер. Но еще до этого удалось попрограммировать на Наири-2 и Наири-К