Куча говна / Говнокод #25135 Ссылка на оригинал

0

  1. 1
  2. 2
https://habr.com/post/431534/
Проблемные личности среди разработчиков

Запостил: syoma syoma, (Updated )

Комментарии (76) RSS

  • С чьей точки зрения это вообще написано?
    Ответить
    • time2rfc, 29 ноября 2018 в 18:42: «В какой-то момент показалось, что я читаю не о взрослых людях а учебник колониального управления для белых британцев в странах третьего мира».

      g6uru, 29 ноября 2018 в 19:11: «Все евреи жадные, а американцы тупые, гуманитарии не могут мыслить логично, женщины не умеют пользоваться молотком. Куча каких-то штампов. Для комичной статьи написанно слишком серьезно. Для серьезной статьи написанно слишком глупо».
      Ответить
        • Сколько лет живу на этой сайте, а аватарки так и не научился я ставить.
          Ответить
          • Потому что ты гниль
            А что сложного? Регаешься на https://ru.gravatar.com/ (жмоешь "Вайти", потом, Create Account), жменькаешь Add image, выбираешь своё фото в образе лунной принцески, обрезаешь хуй, выбираешь возрастной рейтинг (X здесь не будет показываться, его не надо) выбираешь, для каких имэйлов она будет показыватся, дать блюду подышать 5 минут и готово.
            Ответить
            • Всё немножко сложнее:
              1. gravatar.com предлагает создать учётку на wordpress.com. Именно эту учётку он будет использовать для идентификации.
              2. В gravatar.com нужно добавить е-мейл (к одной учётке gravatar можно привязать несколько е-мейлов). Он отправит на е-мейл ссылку для подтверждения. Нужно добавить именно тот е-мейл, на который регистрировалась учётка в ГК.
              3. После этих шагов уже можно Add image.
              Ответить
            • А помнишь царя Додона? Он такой Шамаханской царице:

              Буду век тебя любить,
              Постараюсь не забыть.
              А как стану забывать,
              Ты напомнишь мне опять.
              Ответить
    • С точки зрения Эффективного Менеджера.

      Кстати, а зачем тебе (и нам) эта статья? Решил в менеджеры податься?
      Ответить
  • > некомпетентный
    > возможность исправления: нет
    > если бы некомпетентный разработчик мог научиться, он бы уже это сделал
    Тлен и безысходность.
    Ответить
    • То есть компетентные сразу рождаются такими?
      Ответить
      • Да, ко-ко, бомранд родился сразу со стандартом C++ в руках, кукарек, его первым словом было "циклоня-а-аша", а в детстве у него вместо игрушек были, ко-ко, осциллографы и отладочные платы. Ко!
        Ответить
        • > вместо игрушек были осциллографы и отладочные платы
          И ведь были. Правда в основном всякие реле и лампочки т.к. они нагляднее (считай цифровые).
          Ответить
          • >>реле
            собирал на реле флип-флоп? или сумматор?
            Ответить
        • З.Ы. А ещё были хекс-коды 8080 в журналах, которые я пытался дизасмить на бумажке (т.к. запустить было не на чем).
          Ответить
          • Помню журнал «Радио», в котором пропагандировали конструктор «Радио-86РК» — тупо набор микросхем, из которого можно было собрать компьютер, если умеешь держать в руках паяльник. Материнскую плату тоже нужно было изготовить самостоятельно. Вот к этому компьютеру они и публиковали хекс-коды.

            Ещё был журнал «Юный техник», в нём пропагандировали «ЮТ-88».

            Оба компа собирались на КР580ВМ80 — советском клоне 8080. «Операционная система», которую они предлагали записать в ПЗУ, заслуживала отдельного внимания. Для запуска программы нужно было указывать адрес памяти, по которому её загрузить. В поздних версиях появился «автозапуск» — так назывался режим, при котором адрес указывать не нужно, потому что он выбирался «операционкой».
            Ответить
            • API так называемой операционки был интересен: для вызова функции нужно было делать CALL по заранее известному фиксированному адресу. Ага, в документации по предложенной авторами ОС была табличка со списком адресов публичных функций.

              Было что-то типа такого:
              CONOUT EQU 1234H ; вывод в консоль
              CONIN EQU 2345H ; ввод из консоли
              ...
              CALL CONOUT
              Ответить
              • А что тут собственно такого?
                Чем это хуже обычных досовобиосных INT?
                Ответить
                • И правда, в BIOS тоже есть фиксированные адреса (шрифты, например).

                  Минус по сравнению с INT'ом –— труднее выпускать новые версии. У INT'а просто фиксируешь номерок, а в памяти обработчик можно перемещать. А тут обработчик должен сидеть в фиксированном месте памяти.
                  Ответить
                  • >> в BIOS тоже есть фиксированные адреса (шрифты, например).
                    Только шрифты в BIOS видеокарты все таки, а не в системном BIOS, да и оттуда они могут быть скопированы в R/W память карты (и там заменены русификатором)
                    Ответить
                    • Шестнадцатеричный дамп операционки:
                      http://www.danbigras.ru/UT88/Os/CPM64.TXT

                      По чьей-то оплошности цифра «3» заменена русской буквой «З» в кодировке 866.

                      Слабо дизассемблировать на листочке бумаги?
                      Ответить
                      • Я не знаю ISA этого процессора.

                        И я не Крис, который с помощью debug.com ассемблер учил
                        Ответить
                        • Я тоже не знаю. Но в своё время пытался выводить по обрывочным публикациям в журналах «ЮТ» и «Радио». Искал в шестнадцатеричных дампах нечто похожее на адреса данных и адреса переходов, а также известные в контексте данной программы константы — так составил список инструкций с непосредственным аргументом. Потом забросил.
                          Ответить
                    • Смотри, что нашёл:
                      ----------@F000E739--------------------------
                      CALL F000h:E739h - ROM BIOS INT 14 HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000E82E--------------------------
                      CALL F000h:E82Eh - ROM BIOS INT 16 HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000EC59--------------------------
                      CALL F000h:EC59h - ROM BIOS INT 13 HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000EFD2--------------------------
                      CALL F000h:EFD2h - ROM BIOS INT 17 HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000F065--------------------------
                      CALL F000h:F065h - ROM BIOS INT 10 HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000F841--------------------------
                      CALL F000h:F841h - ROM BIOS INT 12 HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000F84D--------------------------
                      CALL F000h:F84Dh - ROM BIOS INT 11 HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000F859--------------------------
                      CALL F000h:F859h - ROM BIOS INT 15 HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000FE6E--------------------------
                      CALL F000h:FE6Eh - ROM BIOS INT 1A HANDLER
                      InstallCheck:	present if BIOS is 100% compatible with original IBM PC
                      ----------@F000FFF0--------------------------
                      CALL F000h:FFF0h - COLD-BOOT ADDRESS
                      InstallCheck:	always present
                      Ответить
                      • --------H-MF000FFF0--------------------------
                        MEM F000h:FFF0h - RESET JUMP
                        Size:	5 BYTEs
                        --------B-MF000FFF5--------------------------
                        MEM F000h:FFF5h - ASCII BIOS DATE
                        Size:	8 BYTEs
                        ----------MF000FFFD--------------------------
                        MEM F000h:FFFDh - OFTEN USED TO ENSURE CORRECT BIOS CHECKSUM
                        Size:	BYTE
                        --------B-MF000FFFE--------------------------
                        MEM F000h:FFFEh - MACHINE TYPE CODE
                        Size:	BYTE
                        Ответить
                • Нашёл кое-что:
                  Точка входа в БСВВ — ячейка DA00H, и далее следует вектор перехода — последовательность еще 16 инструкций.
                  
                          DA00 JMP BOOT
                          DA03 JMP WBOOT
                          DA06 JMP CONST(F812 - активность клавиатуры)
                          DA09 JMP CONIN (F803 - прием с клавиатуры в А)
                          DA0C JMP CONOUT (F809 - вывод на дисплей)
                          DA0F JMP LIST (F809 - вывод на дисплей)
                          DA12 JMP PUNCH (F80C-вывод на магнитофон)
                          DA15 JMP READER (F806-ввод с магнитофона)
                          DA18 JMP HOME
                          DA1B JMP SELDSK
                          DA1E JMP SETTRC
                          DA21 JMP SETSEC
                          DA24 JMP SETDMA
                          DA27 JMP READ
                          DA2A JMP WRITE
                          DA2D JMP LISTST
                          DA30 JMP SECTRAN

                  Источник:
                  http://www.danbigras.ru/UT88/Os/OS.html

                  Там по фиксированному адресу вплотную друг к другу идут джампы на реальные адреса обработчиков. Фактически jumptable с шагом 3 (лишний байт тратится на КОП JMP).

                  Вообще ничего плохого, разве что jumptable нельзя никуда переносить с адреса DA00, иначе программы перестанут работать.
                  Ответить
                  • да, косвенная адресация через инты гибчее
                    Ответить
                    • В Трубопаскакале 3.0 доступ к графической библиотеке был через такую же таблицу переходов:
                      http://govnokod.ru/19045#comment305461

                      Ну там хотя бы адреса не абсолютные, а относительные.
                      Ответить
                      • В первых юниксах не было .h файлов, вместо них была документация

                        ну типа: функция возвращает структуру у которой первый байт представляет foo, а дальше идет указатель на bar.
                        Ответить
          • Тебе повезло, а у меня в деццтве были металлический коньсруктор, болтики, гайки, токарный станок, отец научил меня жестяным работам, ещё у меня были книги по огнестрельному стрелковому оружию, так что аккуратнее, а прогать я учился сам —– в 12-13 лет в Multimedia Builder, потом я попытался прогать на js, но самому было тяжело и я забросил это дело, только потом, в 9-м классе меня пропёрло с поцкаля, потом си, а потом остальные языки пошли как по-маслу: actionscript, python, assembler, J, Forth мой анус был уже достаточно разработан.
            Ответить
            • Милый боженька, спасибо тебе что когда мне было 12 лет не было на свете ни js, ни actionscript, и ни какой прочей анальной петушни, а были только си, паскаль, бейсик и ассемблер

              Потому я вырос здоровым ребенком, с неполоманной психикой
              Ответить
              • Но с парнем-то было? Признайся, тут все свои.
                К слову, так сложилось, что советская молодежь повально увлекалась фотографией, техникой, шахматами. Многие подростки состояли в секциях и радиокружоках, а после школы шли друк к друку в гъости паять схемы. Так было и со мной. Творческая лаборатория моего моего друга находилась в подвале; когда вдвоём спускаешься туда, в полутьму, романтикой какой-то веет, слегка даже экстримом. Я часто видел, как стоит его член; в общем, было не до пайки. Однажды я отсосал ему... Дальнейшие наши отношения дружбой уже нельзя было назвать; мы стали встречаться и под предлогом занятий радио занимались сексом. Кончилось всё это очень плохо. Я узнал, что он давно блядует, причем партнеров выбирает постарше, годящихся ему в отцы. От скуки я занялся программированием... 🙁
                Ответить
    • Хороший программист оказавшись в позиции где он не компетентнет начинает есть мозоли, и через пол года он уже компетентнее половины своих коллег.

      Если пол года прошло а он все еще не компетентен -- значит никогда не будет хорошим
      Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8