• Какие есть книги/руководства по разработке "простого языка программирования" для новичка?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Руководитель дипломной работы предложил разработать "простой язык программирования для целей обучения". Я поняла его так - многие учебные задачи с использованием современных языков теряют смысл. (перевернуть массив? для этого есть готовая функция. написать сортировку - тоже есть. а если задача на динамических списках - студент сложит их в массив и радуется) только вручную проверять, правильно ли написал. А хорошо если есть язык в котором опцией выключаются массивы например или циклы. И конечно минимум готовых функций.


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

    Писать свой язык проблематично с начальными знаниями, потому что нужно хотя бы знать как примитивы работают.
    Опять же какой язык - компилируемый или интерпретируемый? Написать свой компилятор непростая задача, как минимум нужно разобраться с архитектурой ОС, разобрать форматы исполняемых файлов, это куча дополнительной работы.

    Я бы на твоем месте уточнил бы детали у препода, на каком уровне требуется это сделать.
    Ответ написан
    2 комментария
  • Кто знает приложение/сервис/движок/протокол под описанные задачи?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    В опен-сорсе обычно очень маленькое количество огромных комбайнов. У вас тут хотелки на 5-6 отдельных продуктов. А все в одном бывает в основном в крупном ентерпрайз продукте, типа комбо от atlassians, или какой-нить битрикс.

    Разбейте ваши хотелки на отдельные компоненты, тогда можно поискать какой-то бесплатный аутсорс, и то..
    Ответ написан
    Комментировать
  • Как работает 3D в современных играх?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Слишком общий вопрос.
    В общем случае, raycast, raytracing и другое - это просто различные рализации алгоритм рендеринга для 3d сцен.
    Есть готовые движки и библиотеки. Какие-то платные, какие-то бесплатные. Какие-то жрут больше ресурсов, но дают более качественную картинку (достаточную для создания CGI сцен для фильмов на большой экран), какие-то после шлифования напильником достаточны для игры в HD разрешении.

    Та же идея рейкастинга может использоваться в несколько проходов, чтобы, например кинуть лучи с определенной частотой, построить упрощенный буфер видимой области. Потом выполнить второй проход более подробный, вычислить расстояние и масштаб для текстур. Потом выполнить еще один проход и сгладить края (одна из основных проблем, как сгладить края на hi res и при этом сэкономить ресурсы). И все эти штуки - отдельные алгоритмы рендеринга, которые использут принцип рейкастинга, и могут иметь внутренние названия в движке, а в другом движке те же самые алгоритмы могут называться чуть иначе, или схоже.

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

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

    Таким образом оба термина не устарели и активно применяются, но это слишком общие слова, а не конкретная реализация. Под капотом там куча дополнительной терминологии.

    А для современных игроделов есть просто несколько готовых фреймворков/движков - тот же юнити, XRay, Unreal, Godot, которые используют несколько алгоритмов рендеринга, разработчик может выбрать как пользоваться рендерингом, какие алгоритмы для какой сцены/действия использовать. Конечно желательно разбираться глубже, чтобы понимать как дизайнить игру, ибо алгоритм, который хорошо работает на открытых пространствах может хуже работать в тесном помещении, где требуется множество объектов с высокой детализацией. И наоборот.

    То есть современные игроделы редко занимаются непосредственно ковыряниями с деталями реализации, скорее уже оптимизируют их микс для своего проекта
    Ответ написан
  • Почему компьютеры используют двоичные числа в мантиссе IEEE754 вместо BCD или PDP?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Потому что BDC это не представление, а уже кодирование, упаковка.
    Процессор не содержит инструкций по взаимодействию с таким представлением, поэтому вместо простой арифметической операции, тебе сперва придется декодировать числа, сохранить их где-то,затем снова закодировать.
    Во-вторых тебе стоит попробовать построить обычный арифметический сумматор, чтобы понять как в принципе процессор считает числа. Вся арифметика основана на двоичной системе, а точнее на 0/1. И чтобы написать сумматор для BDC, потребуется куча лишних операций по декодированию таких чисел.
    В результате в некотрых (не всех случаях), Ты сэкономишь чуть-чуть памяти, но количество операций для расчета увеличится в разы.
    Ответ написан
    2 комментария
  • Почему, используя Bluetooth-адаптер серьёзной фирмы, интернет раздаётся на ПК, со смешной скоростью в 1.5 мегабита/сек?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Может потому что на оф. сайте пишут что этот адаптер поддерживает только BT 5.0, а не 5.3 ?

    https://www.tp-link.com/us/home-networking/usb-ada...
    Ответ написан
    Комментировать
  • Как написать скрипт на bash для ansible чтоб автоматически разослать публичные ключи на машины?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Продебажить что происходит, добавить echo внутри цикла?
    Руками если выполнить ssh-copy-id работает?
    Какую ошибку выдает?

    ssh-copy-id достаточно тупая команда. может не учитывать текущие настройки sshd, например sshd настроен на authorized_keys2, а он пишет в authorized_keys

    В общем проверить руками результат команды, проверить что внутри цикла.
    Ответ написан
    6 комментариев
  • Как в Linux найти файлы одинакового размера?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. Поискать готовые инструменты, их есть.

    2. написать скрипт, который например через find находит все файлы рекурсивно, вычисляет для каждого контрольную сумму, например md5, и скидывает в какой-то текстовый файлик хеш и путь+имя файла.
    Сортируешь по хешу, находишь одинаковые.

    3. найти все файлы, которые не отличаются друг от друга более чем на 10 Кб
    С этим сложнее. Есть софт, который может определять похожие изображения, но именно файлы, там непонятно как с критериями работать.
    Ответ написан
    Комментировать
  • Зачем нужен Kubernetes?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Кубер это оркестратор с достаточно широкими возможностями автоматизации.
    Он не имеет смысла если у вас парочка компонентов, которые вы запускаете на одном хосте.

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

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

    В третью, большое количество интеграций с внешними системами при помощи раннеров, что позволяет сделать ci/cd, разграничить его по правам и так далее, объединиться с каким-нить hashicorp vault при помощи парочки аннотаций и так далее.
    Ответ написан
    Комментировать
  • Как по SSH Windows запустить скрипт на рабочем столе?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Подключаешься к рабочему столу удаленного сервера по rdp и запускаешь там скрипт
    Ответ написан
    Комментировать
  • Ноутбук с разрешением 3840-2400, можно настроить на 3840-2160?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    LCD экраны в принципе не умеют менять разрешение, ибо у них пиксельность дискретная, и любое нестандартное разрешение это выбор на сколько пикселей теперь масштабировать точку. В любом случае страдает четкость, поэтому технически можно, но выглядеть будет так, что лучше не надо.

    P.S. Можно стримить область экрана нужного разрешения, или если приложение можно запустить в окне, то подогнать размер окна и стримить окно.
    Ответ написан
    3 комментария
  • Чем отличается Журнал коммитов и Топик в Kafka Apache?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ну собственно в топике хранятся данные, которые оттуда забираешь.
    А в логе в течение некоторого retention периода хранятся метаданные данных. Можно посмотреть историю, или просто список сообщений. Вдобавок логи в целом меньше самих данных и хранятся целиком на каждом сервере, что позволяет быстрые операции со списком.

    Можно официальную документацию, раздел topics and logs
    https://kafka.apache.org/08/documentation.html#int...
    Ответ написан
    Комментировать
  • Как стартовать в аналитике "гуманитарию"?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Подскажите пожалуйста:
    1. Какие харды нужны для джуна в аналитике? (Например, для маркетингового. Но послушаю и для других направлений)
    2. Как лучше учиться? Самому, на курсах или найти ментора?
    3. Сколько в среднем занимает обучение, скажем, с нуля и до способности выйти на собес?


    1. Логика, понимание статистики, различных выборок и часто полезно уметь пользоваться софтом
    2. В среднем те, кто читают книжки понимают в разы лучше чем те, кто смотрят видяшки. Но это индивидуально. Дело не только в способе, но и в количестве потраченных усилий
    3. Полностью индивидуально. Тот кто в среднем задает подобные вопросы, могут и за 5 лет не выйти на собес. Те кто подобные общие вопросы не задает могут с нуля и за полгода выйти.
    Ответ написан
    Комментировать
  • Возможно ли отправлять команды коммутатору через Bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    А почему нельзя обычный ssh с ssh ключами?
    Ну ив ообще-то нет проблем однострочник на баше написать..
    Ответ написан
    Комментировать
  • Курсы и книги по Windows Server?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    https://learn.microsoft.com/uk-ua/windows-server/

    Можете подсказать, чем вас не устроили первые результаты поиска в гугле?
    Ответ написан
  • Какие книги прочитать чтобы написать свою операционную систему?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ну для начала следует разобраться в загрузчике.
    Ставишь виртуалку и делаешь образ, который может загрузиться, что-то вывести на экран и выполнить какую-то манипуляцию (попробуй реализовать текстовое или графическое меню).

    Для этого почитай как работает современный bios и как устроены стандартные разделы дисков, чтобы сделать свой загрузчик и разместить его в первом кластере/блоке.
    Сейчас актуально и MBR и GPT.
    А вот BIOS уже потихоньку заменяется на UEFI.
    https://habr.com/ru/articles/327572/

    Уже потом начинай думать что будешь делать с файловой системой, пробовать писать драйвер под существующую, или придумывать свою. Вполне возможно что на это у тебя уйдет несколько лет и ты забьешь.
    Ответ написан
    Комментировать
  • Почему могло случиться host identification has changed?

    saboteur_kiev
    @saboteur_kiev Куратор тега SSH
    software engineer
    host identification имеется в виду known host file?

    Проверь host ssh ключи на стороне сервера, которые лежат в /etc/ssh
    Возможно панель хостера при подобных ребутах их обновляет
    Ответ написан
    Комментировать
  • Как провести реверс инжиниринг файлу типа png jpd svg?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Нужно меньше смотреть сериалы и больше читать документацию.

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

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

    С другой стороны, судя по тому как ты задаешь вопрос, чтобы попытаться найти подобную уязвимость, тебе сперва нужно лет 5-10 изучать ассебмлер, с++ и алгоритмы работы с современной графикой. Ибо "найти уязвимость" выполняется долгим анализом а не "поиск по файлу"
    Ответ написан
    Комментировать
  • Синхронизация двух директорий через ssh?

    saboteur_kiev
    @saboteur_kiev Куратор тега SSH
    software engineer
    Мне постоянно советуют rsync

    Неужели такая странная хотелка, что нет готового решения?

    Так тебе и советуют готовое отличное решение.

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

    Нет, это не замена scp. То, что используется тот же протокол не значит что работает одинаково. rsync умеет обновлять файлы частично, экономит трафик.

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

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

    В твоих требованиях противоречия.
    То тебе нужно, чтоыб какие-то файлы не синкались. То есть уже нужно поддерживать список исключений и возможно настраивать его на каждом сервере.
    Потом у тебя день поработать на каком-то сервере, а завтра на другом. То есть ситуация, когда у тебя 5-10 серверов и ноут будут синкаться друг с другом?
    Потом ты хочешь "готовое решения", но не хочешь ставить его на каждый сервер/ноут и настраивать. Ну вот есть какой-нить unison, который синкает в обе стороны за один запуск, но его нужно будет и ставить и настраивать как и synthing, который ты не хочешь ставить или настраивать.

    Я бы не парился, а просто юзал приватный git репозиторий, который легко поставить везде. И в гите не обязательно сотни веток и даже коммит можешь просто ребейзить постоянно, чтобы был один.
    Или rsync который уже обычно есть почти везде и который понятно как работает.

    Или уж настрой тот же synthing, а настройку добавь себе в гитхаб, чтобы можно было скриптом скачать готовый сетап и все.
    Ответ написан
    8 комментариев
  • Имеет ли право работодатель нанимать инвалида по зрению разработчиком на полную ставку по ТК РФ?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    В хорошем случае, о том что у тебя есть инвалидность нужно сообщить. Но также можно уточнить насколько она мешает тебе работать.
    Если ты ничего не видишь, и не можешь работать не возьмут.
    Если ты видишь плохо, через 2-3 часа работы глаза выпадают и тебе нужно потом отдыхать - это уже условия.

    А поставить масштаб 200 - это не условия, просто легкая адаптация, особенно на удаленке.
    В офисе вроде никто не запрещает себе вешать обои или менять масштаб. На крайняк можно попросить монитор побольше или из дому свой притащить на рабочее места, оговорив это с работодателем.

    Что касается условий работы - по ТК разных стран, компании даже обязаны брать определенный процент инвалидов, получают за это определенные квоты.
    Таким образом инвалид, который может выполнять рабочую норму - зачастую выгоден компании, ибо есть инвалиды, которые имеют проблемы с адекватностью, и их просто трудоустроить и содержать уже проблематично.
    Ответ написан
    1 комментарий
  • Проблема изучения C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    C++ как прикладной язык сейчас не сильно приветствуется. Он хорош как системный язык.
    На нем легко накидать консольные утилиты.
    Для вещей типа пет проект или игрушку, юзают фреймворки, всякие QT, Boost, WT
    Или движки типа UnrealEngine, Cocos2d, X-ray, GZDoom
    Ответ написан
    Комментировать