Очевидно, что вы никогда не работали в саппорте. Цель службы поддержки — увеличить продажи и улучшить имидж компании (чтобы увеличить продажи), а не поржать над клиентом. Поэтому абсолютно бесполезный совет.
Правильно, надо показать клиенту, что ты ему сопереживаешь, а не разговаривать монотонно как робот, самоутверждаясь в своей правоте. Ещё можно отложить решение проблемы до завтра, на неделю итд. Часть проблем в некоторых случаях решается сама собой и в итоге теряет актуальность.
В моём представлении, саппорт совершенно неправильно общался с Антоном.
Во-первых, клиент говорит им о существовании проблемы, а они ему, по сути, отвечают, что никакой проблемы-то и нет, т.к. она существовала всегда, а он её, якобы, просто не замечал. Да они вообще не понимают на что он жалуется.
Во-вторых, своим невозмутимо-спокойным тоном они демонстрируют, что на 100% убеждены в своей правоте и что совершенно не сопереживают ему, а также не имеют намерения найти хоть какие-нибудь пути решения этой проблемы.
В конце концов, можно было чисто по-человечески, видя, что человек уже срывается на визг, сказать простую фразу: «Пожалуйста, успокойтесь, мы обязательно найдём решение Вашей проблемы».
Поскольку в те годы когда я начинал изучать компьютеры ассемблер был основным языком (если ты хотел написать что-то более-менее человеческое), то у меня проблем перехода с высокого уровня на низкий не было. Наоборот, я достаточно мучительно изучал С и не понимал зачем там всё так сложно (как мне казалось) по сравнению с ассемблером. Например, в АСМе я всегда понимаю как я работаю с указателем и знаю с каким шагом я его инкрементирую, в С же это зависит от типа указателя и ошибку (кмк) при малом опыте совершить гораздо проще чем в АСМе.
Если кому-то интересно изучение ассемблера в наиболее наглядном виде, я предложил бы процессор Intel 8080. Его ассемблер наиболее типичен, он лёг в основу более позднего Z80 (где были добавлены регистры и некоторые операции, а также изменены мнемоники на более правильные и универсальные). После этого можно попробовать изучить 8086 (он уже значительно сложнее за счёт сегментов и их адресации).
Ассемблер же микроконтроллеров усложняется тем, что в них как правило присутствует большое кол-во таймеров, прерываний, ЦАПов, АЦП итд итп, а также портов с 3-мя состояниями, которых не бывает в традиционных процессорах. Адресное пространство у них изначально разделено на код программы и данные, чего не происходит явно в том же 8080.
В принципе, в ассемблере нет ничего сложного. Регистры — те же переменные. А когда изучаешь чужой код, узнаёшь много красивых конструкций. Например, цикл (код Intel 8080):
MOV A,080h
M1: DEC A
[........]
CMP A, 0h
JNZ M1
Можно записать так:
MOV A,080h
M1: DEC A
[........]
ORA A
JNZ M1
А можно так:
M0:
MOV A,080h
M1:
[........]
DEC A
JNZ M1
Т.к. команда DEC сама устанавливает флаг нуля (Z) при достижении значения 0. И в более старших процессорах (8086 итд) тоже работает.
Ещё на асме можно оптимизировать код, используя модификацию самого пространства кода, т.е. своим же кодом менять содержимое ячеек программы. Например, в последнем примере ячейка [M0+1] содержит константу 0, которая на самом деле не константа: её можно перезаписать командой STA M0+1.
Кстати, роботу проще будет на это реагировать. Эти системы уже существуют: ультразвуковой радар сканирует дорогу и в случае ямы (учитывая скорость, конечно) «подбирает» колесо вверх так чтобы оно туда не провалилось.
Беспилотные авто намного улучшат ситуацию с пробками. Потому что, по крайней мере, не будут выезжать на перекрёсток если место после него занято, перекрывая таким образом поперечный поток. В Москве это причина как минимум 50% пробок.
Неужели там действительно используются Li-Ion ячейки, стандартные, которые номиналом по 3.7в? Забавно… Очень интересует тема электромобилей. Даже была мысль купить б/у Tesla S из Штатов. Кстати, Tesla Roadster кто-то продавал в Москве. Несколько раз появлялось объявление, каждый раз с новой более низкой ценой…
Слушайте, сейчас у любого нормального регистратора есть услуга бесплатного DNS. Плюс, она есть у любого нормального хостера. Я много лет нахожусь в теме сайтов, хостинга итд итп но ни разу в жизни мне не приходилось (да и мысль не приходила) использовать бесплатные DNS сервера. Если что-то бесплатно, там может вообще быть что угодно.
Информация, безусловно, очень интересная и полезная и за неё хочу вас поблагодарить. Только есть небольшой нюанс: это изготовление пробной партии плат. Подрядчик подразумевает, что вы в будущем закажете 1000 или 10000 штук. Что делать, когда в очередной раз понадобятся платы? Писать с другого e-mail'а?
Warrant — слово с вполне конкретным значением. Расхожая фраза из фильмов «Do you have a warrant?» (А ордер у вас есть?) — когда полиция приезжает к подозреваемому с обыском, а он не хочет их пускать домой.
Если точнее, канарейка, поющая в шахте, это miner's canary. Ещё есть понятие climate canary — вид животного, исчезнувшего как знак ухудшения экологии в конкретном районе. Т.е., пока вид существовал, всё было хорошо. Очевидно, в выражении warrant canary использована та же логика.
«Уловка 22» («Catch 22») в английском языке является фразеологизмом (устойчивым сочетанием слов) и выражает затруднительную ситуацию или положение дел из которого нет выхода по причине присутствия взаимозависимых либо противоречащих друг другу обстоятельств. Наиболее распространённый перевод на русский язык — «замкнутый круг».
Warrant Canary — это тоже не «свидетельство канарейки». Warrant — это предписание, ордер. Видимо, имеется в виду, что канарейка «пропоёт» и предупредит заинтересованные стороны о существовании такого ордера.
Надо было когда винт вырубался попробовать включить его не подключая шлейф SATA, просто подать питание и посмотреть отрубится он через 5 минут или нет. Определить это по потреблению линии 5В (очевидно, не по звуку шпинделя). Кстати, вполне вероятно, что винт отключался не сам по себе, а его отключала ОС. Не знаю как в SATA, а у IDE винчестеров программно можно было отключать мотор шпинделя (и диск физически останавливался).
Сейчас гадать будет очень сложно. Жаль, что вы изначально не сделали копию того файла.
И сразу идея появилась! Печатаем нерасшифрованную модель на 3D принтере, отправляем по обычной почте, потом считываем 3D сканером, расшифровываем и печатаем!
Во-первых, клиент говорит им о существовании проблемы, а они ему, по сути, отвечают, что никакой проблемы-то и нет, т.к. она существовала всегда, а он её, якобы, просто не замечал. Да они вообще не понимают на что он жалуется.
Во-вторых, своим невозмутимо-спокойным тоном они демонстрируют, что на 100% убеждены в своей правоте и что совершенно не сопереживают ему, а также не имеют намерения найти хоть какие-нибудь пути решения этой проблемы.
В конце концов, можно было чисто по-человечески, видя, что человек уже срывается на визг, сказать простую фразу: «Пожалуйста, успокойтесь, мы обязательно найдём решение Вашей проблемы».
Если кому-то интересно изучение ассемблера в наиболее наглядном виде, я предложил бы процессор Intel 8080. Его ассемблер наиболее типичен, он лёг в основу более позднего Z80 (где были добавлены регистры и некоторые операции, а также изменены мнемоники на более правильные и универсальные). После этого можно попробовать изучить 8086 (он уже значительно сложнее за счёт сегментов и их адресации).
Ассемблер же микроконтроллеров усложняется тем, что в них как правило присутствует большое кол-во таймеров, прерываний, ЦАПов, АЦП итд итп, а также портов с 3-мя состояниями, которых не бывает в традиционных процессорах. Адресное пространство у них изначально разделено на код программы и данные, чего не происходит явно в том же 8080.
В принципе, в ассемблере нет ничего сложного. Регистры — те же переменные. А когда изучаешь чужой код, узнаёшь много красивых конструкций. Например, цикл (код Intel 8080):
MOV A,080h
M1: DEC A
[........]
CMP A, 0h
JNZ M1
Можно записать так:
MOV A,080h
M1: DEC A
[........]
ORA A
JNZ M1
А можно так:
M0:
MOV A,080h
M1:
[........]
DEC A
JNZ M1
Т.к. команда DEC сама устанавливает флаг нуля (Z) при достижении значения 0. И в более старших процессорах (8086 итд) тоже работает.
Ещё на асме можно оптимизировать код, используя модификацию самого пространства кода, т.е. своим же кодом менять содержимое ячеек программы. Например, в последнем примере ячейка [M0+1] содержит константу 0, которая на самом деле не константа: её можно перезаписать командой STA M0+1.
Если точнее, канарейка, поющая в шахте, это miner's canary. Ещё есть понятие climate canary — вид животного, исчезнувшего как знак ухудшения экологии в конкретном районе. Т.е., пока вид существовал, всё было хорошо. Очевидно, в выражении warrant canary использована та же логика.
Warrant Canary — это тоже не «свидетельство канарейки». Warrant — это предписание, ордер. Видимо, имеется в виду, что канарейка «пропоёт» и предупредит заинтересованные стороны о существовании такого ордера.
Сейчас гадать будет очень сложно. Жаль, что вы изначально не сделали копию того файла.
Если серьёзно, теперь придётся создавать ещё одну тему чтобы убедить тех кто поверил в это вирус в том, что он не существует.