Ответы пользователя по тегу Программирование
  • Сколько вообще целых и дробных чисел с неповторяющимися цифрами существует?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дробные числа можно рассматривать как те-же самые целые только с множителем 10 в степени -1
    и потом -2 и так далее. Результаты - объединить.
    Ответ написан
    1 комментарий
  • Как правильно написать условие запрета повторного ввода символа "." в Action Script 3.0?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Action Script - это как Cobol в наше время. Разработчики отрастили седые бороды и померли.

    Проверь что
    имя_текстполя.text
    не пустое.

    Проверь какое числовое значение возвращает
    имя_текстполя.text.indexOf(".")

    Это и будет скорее всего ответ на твой вопрос
    Ответ написан
  • Актуален ли ассемблер на сегодняшний день?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ассемблер полезен при анализе прошивок на безопасность.
    При изучении того как работает софт без исходного кода (обратный инжинеринг)
    и при решении задач интеграции разных слоёв софта.

    Ассемблер также очень близко стоит к разработке компилляторов. И если у вас нет
    соотвествующих знаний то строить свой компиллятор вы не сможете. Или вам нужно
    будет изучать готовые back-ends, virtual-machines.

    Ассемблер помогает при анализе узких мест в коде. В частности например
    векторизация вычислений ставит в первую очередь вопросы на которые ассемблер
    отвечает а ЯВУ - нет.

    Знания ассемблера помогают сделать бинарник компактнее. Это важно при разработке
    встраиваемых систем.
    Ответ написан
    Комментировать
  • Полезность моделей памяти которые отличный от linear?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Любая оптимизация начинается от проблемы. Из проблем памяти я могу отметить технологический предел
    на пропускную способность. (так называемая Стена Фон-Неймана). Она частично решается
    кешамя для горячих участков кода но никак не решается в обобщенной постановке.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такая грамматика уже создана. Называется язык Prolog.

    Сразу скажу что сама затея создания словесных экспертных систем обречена на провал.
    Растущая комбинаторная сложность и сложность задавания вопросов этой системе
    свела на нет все усилия лет 30 назад.

    Сегодня такие системы считаются legacy, и языковые модели-чаты их полностью заметили.
    Потому что обучить модель легче чем человеку описать сет рулов. И еще все это потом протестировать.
    Ответ написан
    7 комментариев
  • Какой инструмент может превратить схему БД в панель управления или админку?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Практически такое решение будет очень небезопасным. Обычно вебу дается минимум доступа к БД и то
    через всякие сервисы и прослойки. А вы прям открываете вообще все что только есть. Это я думаю - плохой
    дизайн по безопасности. И пользователь может грохнуть целую таблицу случайно.

    Графические инструменты для работы с БД есть. Например JBeaver. Универсален и удобнее веба.
    Ответ написан
  • На чем пишутся современные десктопные приложения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    java - "не подходит для десктопа"

    На платформе Java (Groovy, Kotlin) написана среда разработки Jetbrains Idea.
    Правда есть у меня подозрение что из библиотек там использован не Swing а SWT
    но я уж не помню я слишком давно этот вопрос изучал. За много лет многое могло поменятся.
    SWT не слишком кроссплатформенный.

    На Java написан менеджер закачек Vuze (Azureus) и такая векторная рисовалка как Yed
    которой я пользуюсь иногда.

    Еще OracleDeveloper, Beaver, SOAP-UI, и много всяких тулов программисткого толка.

    По поводу JavaFX но я честно говоря не видел чтоб кто-то
    активно что-то графическое на нем разрабатывал. Скорее всего это была наивная попытка
    исправить недостатки Swing. И сделать его ... более мультимедийным чтоли.

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

    Для окон остается что-то очень хардовое типа Photoshop, 3dMax, AutoCad где можно грузить на 200%
    клиентский CPU и ты реально будешь хотя-бы чувствовать пользу от такой отдачи.

    Все где формочки и гриды - потеряло рентабельность. Его дешевле делать на вебе т.к. разработчик
    веба стоит дешевле и внести резкое изменение в функционал очень легко.

    Поэтому не звучит вопрос что на Java десктопы не пишут. А их щас реально уже НИ НА ЧЕМ не пишут.
    Даже на С++. Реально только игры и редкие приложения типа там 1С или какие-то клиент-банки.
    Ответ написан
    7 комментариев
  • Как обрабатывать переполнение счетчиков и индексов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В классических языках программирования происходит обнуление переменных int, long.
    Тоесть ошибки не будет но счетчик пойдет снова с нуля. Чтоб детектировать - надо
    делать проверку условия на максимум.

    На уровне языка Ассемблер и процессора существует флаг переполнения (OF) который взводится в
    состояние true если в результате сложения или инкремента последняя операция детектировала
    переполнение. Тоесть обработать это технически возможность существует. И далее - условный переход
    на обработку.

    В реальных приложениях такого лучше не допускать. Лучше не жадничать и вводить long счетчики.
    Их хватит на тысячи лет как-бы вы там интенсивно не делали инкременты. В базах данных типа Oracle
    NUMBER тип хранит 38 десятичных знаков числа. Надолго хватает. И я не слыхал чтоб у кого-то в обычном
    режиме бизнес-транзакций эти счетчики переполнялись.

    У Постгреса была проблема с 32 битными счетчиками XID. Не знаю как они ее порешали. Кажется
    как-то они сбрасывают их для всей таблицы. Толи в вакууме толи еще как-то я не помню. Пускай
    постгресщики скажут точнее.

    Чтобы уйти от мелких счетчиков попробуйте использовать SnowflakeId (64bit) или GUID(128bit). Их надолго
    хватает и никто не жаловался. Git использует 160-bit идентификаторы коммитов в графе коммитов
    и тоже пока никто не жаловался.
    Ответ написан
  • Есть ли необходимость или очевидные плюсы перехода на linux?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В целом острой необходимости нет. Особенно если ты работаешь с веб-дизайном например.
    Я перешел когда мне стало интересно разворачивать Ораклы и Hadoop и прочие вещи
    и мне нужна была нативная интеграция bash. Не на уровне виртуалок или докеров или WSL
    а мне нужна была истинная система. Делить ресурсы 50 на 50 между гостем и хостом я не хотел.
    И задачи я себе придумывал такие которые требовали hardware нагрузить на сто процентов.

    Корпоративные ноуты еще долго будут под Windows11. Это стандарт де факто для офиса. И я с ним
    вобщем согласен. Я-бы сказал что не звучит вопрос переходить или не переходить. А в современном
    мире, в мире где допустим командная строка как способ оперативного решения задач снова возвращается
    в руки разработчику (после периода забвения от Windows95) или девопсу, быть неграмотным в этой
    строке просто неприлично. Нужно быть грамотным в юниксовой строке независимо от того что у вас
    хост-система на декстопе.
    Ответ написан
    Комментировать
  • Как хранить и обрабатывать отображение Id на адрес узла в кластере?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смысл рафта в том чтобы выбрать лидера. Как только лидер выбран - можно пересылать всех
    клиентов на его IP адрес как в балансировщике. В этом случае все клиенты будут видеть единую
    табличку свойств. Как в зукипере.

    Больше в рафте никакого смысла нет.

    Поэтому безразлично к какому узлу подключается клиент.
    Ответ написан
    Комментировать
  • Как создать мессенджер?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если гуглить по ключевому слову С++ socket server то обычно находят приложение клиент-сервер
    который по TCP/IP передает текстовые сообщения. Я считаю что это - минималистичный мессенджер.
    Вот бери его и думай как развивать дальше.
    Ответ написан
    Комментировать
  • Есть ли хорошие пошаговые туториалы проектов на С++ для новичков?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно С++ в вакууме не существует. Его учат сразу применительно к программированию UI под Windows,
    или к Unreal Engine, или к сетевому программированию под Linux/Unix. Или еще более специфичный
    сегмент - сетевое оборудование и микроконтрллеры. Это неизбежно.

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

    Тоесть в самом вопросе ты должен сам решить куда ты дальше со знаниями С++ пойдешь.

    P.S. С++ за 14 дней... - это завсегда можно найти.
    Ответ написан
    3 комментария
  • Редактор кода, удобный для больших длинных файлов -?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Atom и Sublime, Notepad++ - это хорошие кандидаты на роль универсального редактора на все
    случаи жизни. Многие из них работают с Markup/Markdown языками.

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

    Вот. Все современные IDE (Visual Studio Code, Eclipse, Netbeans) тоже являются текстовыми редакторами
    и автору я советую их тоже проверить и приходить сюда с выводами. Споры об годности IDE - это
    вкусовщина. Я о них уже не спорю никогда и всегда соглашаюсь с выбором любого участника.

    Выбирай. Проверяй.

    Насчет AST деревьев, синтаксиса и графов и прочее. Автор должен понимать что все эти техники нагружают
    оперативную память и такой редактор может стать узким местом в системе похуже браузера
    Интернета. Откроешь проект на 100 файлов и уйдешь гулять и пить кофе пока он все откроет
    и проиндексирует.
    Ответ написан
  • Шаблонный код: Чем можно удобно генерировать код для автоматизации сборки по шаблону?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я использовал Apache Velocity https://velocity.apache.org/ он правда не для кодо-генерации,
    а для отчетов, но в некоторых простых кейсх подходит. В шаблон можно добавлять проверки условий и циклы.

    Есть еще Mustache https://mustache.github.io/ , он более простой. Там просто строковые замены. Но, поддерживает все языки разработки для запуска.
    Ответ написан
    Комментировать
  • Нужно ли делать защиту при делении на ноль?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вообще ты сам себе ответил на вопрос
    в разных отраслях для личного пользования.


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

    Какие вообще у тебя варианты по отработке неопределенностей? Я вижу такие.
    1) Возвращать бесконечность +Inf. Это нормально для floating-point. Но влияние результата на стек
    вызовов дальше надо учитывать. Эта бесконечность пойдет в другие формулы порождая новые бесконечности и т.п.

    2) Бросать исключение. Это не в духе С++ и не всегда удобно для выскокой производительности. Но языки высокого уровня этим часто пользуются. Здесь мы предполагаем что такой результат - крайне нежелателен и работа стека расчета векторов будет аварийно прервана.

    3) Возвращать специальный контейнер с результататом (Optional или Either) или пустой контейнер. Это в духе функционального кодинга. Но весь твой стек должен тоже быть адаптированным к таким Optional параметрам результатов.

    И есть еще вариант - просто найти такой базис вычислений в котором нет такой проблемы. Пускай допустим векторы так и остаются основным типом данных но расчеты ты будешь делать в каком-нибудь другом типе где эта операция на уровне математики - безопасна и всегда определена. Грубо говоря как в углах Эйлера. Чтоб не писать всякие проверки условий (if) - можно перейти к кватерниону и там вроде как вращение легче идет.
    Ответ написан
    Комментировать
  • Возможно ли оптимизировать Inline метода с throw с помощью директив препроцессора?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не скажу насчет C# но в других языках и технологиях обработка Exception когда оно уже случилось
    приводит к тяжелым последствиям для производительности. Мне кажется лучше возвращать код
    ошибки или как-то по другому проверять capacity.
    Ответ написан
  • Есть ли название у подобного подхода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Он называется guard expressions., и имеет отношение к pattern matching.
    Ответ написан
    Комментировать
  • Как построить "нейронные связи" на основании полученных данных в json?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне кажется что термин НЕЙРОННЫЕ здесь - buzzword. Не путайте читателей это к теме не имеет отношения.

    А имеет отношение скорее semantic web. Но это кажется мертвая технология. Ее поднимали в 2000х и
    вкладывали большие надежды. Тогда сообщество хотело чтоб веб был свободный и статичный как либа Мошкова.

    А современный веб вообще не заинтересован выдавать на выход семантические сети. Он выдает
    только дизайн и то очень динамический и защищенный многофакторками и защитой от роботов.

    Покажи вообще пример такой карты сайта. Я думаю что тут - две независимые задачи.

    1) Автогенерация карты сайта. Это интересное в топике но нужен пример. Покрывающий пример
    чтоб было понятно например будут ли там циклы.
    2) Визуализация. По этому - есть миллион решений. Я вот навскидку знаю только graphviz. Он немного
    устарел и глючит на больших объемах nodes и ему трудно подобрать подходящий layout и набор
    параметров чтоб не падал и выглядел красиво.
    Ответ написан
  • Является ли Не перенос строки синтаксическим сахаром?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нет. То что ты нарисовал - это просто форматирование.
    Ответ написан
    Комментировать
  • Как определить есть ли противоречия в цепочке логических выражений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать на Prolog написать. Правила (rules) известны. А в качестве утверждений - просто
    проверить что существуют ли целые числа которые удовлетворяют всем rules.
    Ответ написан
    Комментировать