Основная проблема с программированием в настоящее время - это то, что процентов 90, а может быть - 95 программистов занимаются полной хренью, которая по большому счёту нафиг никому не нужна и будет выкинута и забыта через полгода после окончания работы.
Миллионный раз делают те же самые окошки. Только полупрозрачные и с закруглёнными углами. Или формочки. Или тупую "бизнес-логику". Или очередной супердинамический сайт на модном фреймворке. Или очередную версию "офисного пакета".
В общем и целом - 90% усилий уходит в абсолютное НИ-КУ-ДА.
Не потому, что программисты такие глупыи или злонамеренные.
А потому, что современный бизнес, ориентированный на прибыль - требует именно этого.
Частично это - желание менеджеров найти оправдание существованию своих отделов. Ведь если вся работа сделана и осталась только поддержка и исправление редких багов - финансирование придётся сократить.
Частично - желание программистов, занимающихся тупой хренью типа впихивания контекстной рекламы - использовать какой-нибудь модный подход или новый язык. Или самим сделать новый фреймворк. Или перейти на новый фреймворк. Или переделать всё на микросервисы, при этом каждый - на своём языке.
Если так подумать - существенная часть умственного ресурса цивилизации сливается в унитаз. На разработку очередного "тапающего хомяка", например.
В общем, что и ожидалось. Вы можете сделать систему ИИ, которая демонстрирует сложное и вроде бы разумное поведение - но не можете реально оценить, не будет ли в этом поведении странных неожиданных сбоев.
Тут одно из двух: или простые, полностью понятные человеку алгоритмы - или вот так.
Извините конечно, но библиотеку работы с памятью, устойчивой к фрагментации, я видел лет так 20 назад. Точнее, доки к ней.
Кратко: при выделении небольших блоков памяти, они выделяются как часть ранее выделенной странице. Т.е. страница, хранящая блоки до 8 байт длиной, до 16 байт, до 32, до 64, до 128 и так далее. И этот подход отлично работает.
Неужели эта проблема до сих пор актуальна хотя где-то?
Глубина стека - всего 16 элементов? Тут же в рекурсии в любой момент времени уменьшается или n, или m - значит, в любой момент времени глубина стека не более n+m.
Такая задача может по времени обламываться, т.к. без кэширования результатов "дерево" получается очень широкое.
Конкретно для этой задаче - не проще сделать мэп с [m,n] -> value, и если в мэпе уже есть значение - возвращать его, а если нет - вызываться рекурсивно?
Грозоразрядник. Если к вашему дому подведена воздушная/наземная проводка, где-то (обычно в коробке снаружи) устанавливается грозоразрядник.
Наведённое (молнией) высокое напряжение в проводе или (для проводов с экраном) в экране, нужно разрядить на землю. При этом, разумеется, слышен щелчок разряда - который физически происходит куда ближе к вам, и вы его слышите почти одновременно с ударом молнии.
Я пару раз дежурил на ж.д. станциях в помещении дежурного по станции, где грозоразрядник (по-моему, на антенну поездной радиосвязи) был установлен в помещении внутри. Разряд внутри помещения и молния снаружи были почти синхронны, по крайней мере я разницы не заметил.
Скорее всего сойдут практически любые параметры. Начиная с определённого времени (гуглите LBA) диски перестали обращать внимание на параметры сектор/цилиндр/головка или что ещё там, и просто преобразовывало эти данные в линейный номер сектора.
Понятно, что IDE-конвертор CF-карт делает то же самое.
Т.е. достаточно подобрать такие параметры, чтобы размер диска был не больше размера карты.
Вообще-то есть такие компании. Делают ПО для прямого управления АЭС, железнодорожной автоматикой, авионикой, энергетикой, медицинским оборудованием. Но - ценник конский, работают медленно, свистелки и перделки не добавляют, к интернету подключать запрещают...
Вообще-то тот софт, который реально управляет системами, от которых зависит жизнь и здоровье людей - он как раз лицензированный, доказанный и чрезвычайно дорогой. И обновляется редко и с большим скрипом. А антивирус на такое в принципе не ставят - идиотов нет.
Всё, что упало сегодня - это сервисы, от которых ничего существенного не зависит.
Обратите внимание: обломались системы резервирования авиабилетов, но вот диспетчера связь с самолётами не потеряли, и самолёты экстренно не садились.
Ага. Молодые и горячие студенты годик поработают, и убегут куда-нибудь. А 50-летний разработчик под Турбо паскаль будет работать в этой конторе ещё лет 20.
Это всё-таки промышленность, а не вебка - тут не переписывают ПО каждые полгода из-за того, что модной стала другая технология.
Единственный 100% надёжный вариант защиты данных - это текущий лог изменений (например, в SQL-базу) перенаправлять через односторонний интерфейс (диод данных) в хранилище, которое никаких других связей с любыми сетями не имеет.
Самое забавное: вот такой промпт - это ведь не чёткое программирование, что можно - и что нельзя. По определению, нейросетка всегда может наплевать/игнорировать вот так заложенные ограничения. Т.е всё это - благие пожелания.
Ну например, выложив в Perforce бинарный файл (который не получиться смержить) вы сможете поставить ему тип "binary+l". Так как Perforce - система централизованная, после этого данный файл сможет редактировать только один человек за один раз. Соответственно, необходимости "сливать" конкурентные изменения - не будет.
Разумеется, скорее всего для git можно сколхозить что-то подобное. Или использовать отдельную систему "управления документацией" - но это, как надеюсь вы понимаете, набор из резиновых костылей.
Ещё раз - в git можно сделать всё. Но предназначен git для специфической модели разработки и специфических целей - как только вы пытаетесь его приспособить за пределы его исходной концепции - получается хреново.
Кстати, с этой точки зрения точно то же самое и в Perforce. Разрабатывать классический опенсоурсный продукт в Perforce - с получением патчей от неопределённого круга лиц, с разработчиками работающими независимо и самостоятельно - ну, больше всего похоже на мазохизм.
Зачем использовать эту технологию для уже выведенного в космос аппарата?
Реактор, который далее используется для питания ионных движков - эффективнее на два порядка.
Основная проблема с программированием в настоящее время - это то, что процентов 90, а может быть - 95 программистов занимаются полной хренью, которая по большому счёту нафиг никому не нужна и будет выкинута и забыта через полгода после окончания работы.
Миллионный раз делают те же самые окошки. Только полупрозрачные и с закруглёнными углами. Или формочки. Или тупую "бизнес-логику". Или очередной супердинамический сайт на модном фреймворке. Или очередную версию "офисного пакета".
В общем и целом - 90% усилий уходит в абсолютное НИ-КУ-ДА.
Не потому, что программисты такие глупыи или злонамеренные.
А потому, что современный бизнес, ориентированный на прибыль - требует именно этого.
Частично это - желание менеджеров найти оправдание существованию своих отделов. Ведь если вся работа сделана и осталась только поддержка и исправление редких багов - финансирование придётся сократить.
Частично - желание программистов, занимающихся тупой хренью типа впихивания контекстной рекламы - использовать какой-нибудь модный подход или новый язык. Или самим сделать новый фреймворк. Или перейти на новый фреймворк. Или переделать всё на микросервисы, при этом каждый - на своём языке.
Если так подумать - существенная часть умственного ресурса цивилизации сливается в унитаз. На разработку очередного "тапающего хомяка", например.
В общем, что и ожидалось. Вы можете сделать систему ИИ, которая демонстрирует сложное и вроде бы разумное поведение - но не можете реально оценить, не будет ли в этом поведении странных неожиданных сбоев.
Тут одно из двух: или простые, полностью понятные человеку алгоритмы - или вот так.
Извините конечно, но библиотеку работы с памятью, устойчивой к фрагментации, я видел лет так 20 назад. Точнее, доки к ней.
Кратко: при выделении небольших блоков памяти, они выделяются как часть ранее выделенной странице. Т.е. страница, хранящая блоки до 8 байт длиной, до 16 байт, до 32, до 64, до 128 и так далее. И этот подход отлично работает.
Неужели эта проблема до сих пор актуальна хотя где-то?
Скорее всего у немцев тоже были проблемы сделать абсолютно взаимозаменяемые магазины. Это реально непростая задача.
А чем исходно было обоснованно требование о запрете сверления в стволе отверстия для газоотвода?
Ведь для этого должен был быть какой-то повод, обоснование, причина.
Глубина стека - всего 16 элементов? Тут же в рекурсии в любой момент времени уменьшается или n, или m - значит, в любой момент времени глубина стека не более n+m.
Такая задача может по времени обламываться, т.к. без кэширования результатов "дерево" получается очень широкое.
Конкретно для этой задаче - не проще сделать мэп с [m,n] -> value, и если в мэпе уже есть значение - возвращать его, а если нет - вызываться рекурсивно?
В вашем примере кандидат реально ответил на вопрос с очень высокой точностью навскидку.
Это означает, что у него хорошо развит здравый смысл.
Грозоразрядник. Если к вашему дому подведена воздушная/наземная проводка, где-то (обычно в коробке снаружи) устанавливается грозоразрядник.
Наведённое (молнией) высокое напряжение в проводе или (для проводов с экраном) в экране, нужно разрядить на землю. При этом, разумеется, слышен щелчок разряда - который физически происходит куда ближе к вам, и вы его слышите почти одновременно с ударом молнии.
Я пару раз дежурил на ж.д. станциях в помещении дежурного по станции, где грозоразрядник (по-моему, на антенну поездной радиосвязи) был установлен в помещении внутри. Разряд внутри помещения и молния снаружи были почти синхронны, по крайней мере я разницы не заметил.
В общем-то логично. Анонимности в сети и так нет, это иллюзия.
А так люди хотя бы будут это осознавать.
Скорее всего сойдут практически любые параметры. Начиная с определённого времени (гуглите LBA) диски перестали обращать внимание на параметры сектор/цилиндр/головка или что ещё там, и просто преобразовывало эти данные в линейный номер сектора.
Понятно, что IDE-конвертор CF-карт делает то же самое.
Т.е. достаточно подобрать такие параметры, чтобы размер диска был не больше размера карты.
Вообще-то есть такие компании. Делают ПО для прямого управления АЭС, железнодорожной автоматикой, авионикой, энергетикой, медицинским оборудованием. Но - ценник конский, работают медленно, свистелки и перделки не добавляют, к интернету подключать запрещают...
У них наверняка правильно, юридически корректно сформулированы условия лицензии на ПО. Полностью снимающее всю ответственность с фирмы-разработчика.
Вообще-то тот софт, который реально управляет системами, от которых зависит жизнь и здоровье людей - он как раз лицензированный, доказанный и чрезвычайно дорогой. И обновляется редко и с большим скрипом. А антивирус на такое в принципе не ставят - идиотов нет.
Всё, что упало сегодня - это сервисы, от которых ничего существенного не зависит.
Обратите внимание: обломались системы резервирования авиабилетов, но вот диспетчера связь с самолётами не потеряли, и самолёты экстренно не садились.
Нет такой страны, что не ведёт войну. Или ведёт, или является шестёркой того, кто воюет.
А если найдёшь такую - вот на неё и нападёт, например, США с гуманитарными бомбардировками. Или какой ИГИЛ подтащат, для удобства.
Для информации: в США собираются восстановить призыв, т.к. добровольцев чегой-то маловато.
Ага. Молодые и горячие студенты годик поработают, и убегут куда-нибудь. А 50-летний разработчик под Турбо паскаль будет работать в этой конторе ещё лет 20.
Это всё-таки промышленность, а не вебка - тут не переписывают ПО каждые полгода из-за того, что модной стала другая технология.
Единственный 100% надёжный вариант защиты данных - это текущий лог изменений (например, в SQL-базу) перенаправлять через односторонний интерфейс (диод данных) в хранилище, которое никаких других связей с любыми сетями не имеет.
Самое забавное: вот такой промпт - это ведь не чёткое программирование, что можно - и что нельзя. По определению, нейросетка всегда может наплевать/игнорировать вот так заложенные ограничения. Т.е всё это - благие пожелания.
Ну например, выложив в Perforce бинарный файл (который не получиться смержить) вы сможете поставить ему тип "binary+l". Так как Perforce - система централизованная, после этого данный файл сможет редактировать только один человек за один раз. Соответственно, необходимости "сливать" конкурентные изменения - не будет.
Разумеется, скорее всего для git можно сколхозить что-то подобное. Или использовать отдельную систему "управления документацией" - но это, как надеюсь вы понимаете, набор из резиновых костылей.
Ещё раз - в git можно сделать всё. Но предназначен git для специфической модели разработки и специфических целей - как только вы пытаетесь его приспособить за пределы его исходной концепции - получается хреново.
Кстати, с этой точки зрения точно то же самое и в Perforce. Разрабатывать классический опенсоурсный продукт в Perforce - с получением патчей от неопределённого круга лиц, с разработчиками работающими независимо и самостоятельно - ну, больше всего похоже на мазохизм.