Ответы пользователя по тегу Программирование
  • Есть ли название у подобного подхода?

    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.
    Ответ написан
    Комментировать
  • Какие можно почитать ресурсы для создания распределенных, реплицируемых, высокопроизводительных приложений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тема хорошая. Только вот градус амбиций я-бы сбросил. Попробуй просто написать сокетное приложение
    которое передает события из точки А в точку Б. И придумай механизм персистенции. И балансировщик. И кластер. Да. правильно написал про Raft. Не только Raft. Еще есть Paxos используется в Cassandra. И централизованный ZooKeeper.

    Где почитать - я даже не знаю. Спектр технологий такой широкий. Тут и сети. И многозадачность. И хранение информации.

    Кстати Кафки в дефолтной комплектации почти не бывает. Каждый кастомер конфигурирует для себя регуляторы скорость-надежность. Влево-вправо. Понимаешь? Поэтому до того как "убивать" Кафку надо просто понять что любое ее нагрузочное тестирование просто ставит другие вопросы. А что собстенно вы ходите. Доставить опционально но быстро. Или с гарантией что месседж сохранился. Или с гарантией что сохранился в основной кластер и в реплику. Каждый кастомер еще для себя придумывает partitioning strategy что является очень важным аспектом скорости Kafka. Тоесть еще до бенчмарка нужно все эти вопросы проговорить. Иначе выйдет сравнительное тестирование "бульдога" и "носорога". И любая система которая будет быстрее Кафки на самом деле будет просто системой заточенной на более узкие условия. Это как узкий UDP может быть быстрее чем TCP но ... как говорил Василий Иванович есть один "нюанс".
    Ответ написан
    Комментировать
  • Нужно ли при разработке библиотеки следовать принципу одной ответственности?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да можно. Это называется фасадом. Ограничение в single responsibility обычно относится к ООП и к классам.

    Вообще если ты фрилансер и делаешь просто заказ чтоб отдать его с концами - то тебе безразлично что будет внутри. Главное чтоб ты понимал. А соглашения по декомпозиции кода на части появляются только как результат
    коллективной работы над кодом. Тоесть ты должен спрашивать не qna, а свою команду как вам удобнее
    разрабатывать код.
    Ответ написан
    Комментировать
  • Нейросети, пакеты, библиотеки, откуда такая сложность?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Насколько я понимаю TensorFlow - это коробочное решение от Гугла которое также поддерживает специальное железо TPU (Tensor Processing Unig) которое работает лучше чем вычисления на видеокартах.

    А персептрон - это просто математическая абстракция. Причем самого начального уровня. Для многих алгоритмов обучения пороговая функция не годится (там есть требования дифференцируемости) и поэтому нейрон с гладкой функцией активации обычно используется как следующий шаг от персептрона. Хотя у теоретиков НС там были большие теоретические споры про скрытые слои и про учет слоев (как считать).
    Ответ написан
    7 комментариев
  • Как используются "магические константы" в реальных реализациях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты должен спрашивать какие алгоритмы игровой графики бывают. Это важное. А константа - это просто реализация.

    Почитай Генри Уоррена - Алгоритмические трюки для программистов. Там есть всякое. Деление через умножение на магию. Умножение через сдвиги. Дискретные логарифмы и корни и прочее.
    Ответ написан
    Комментировать
  • Как организовать хранилище данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для недорогих облачных хранилищ обычно используют
    AWS/S3, MS-Azure BlobStorage, Google Cloud Storage.
    Ответ написан
    Комментировать
  • Что эффективней, чтение из файла или массив?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос не глупый а вполне себе хороший.

    Его плавное развитие приводит к концепции баз данных. Самое главное что можно сказать тезисно это
    1) Пока памяти хватает (массив) - используй смело память
    2) Диск - больше и дешевле памяти
    3) С памятью работать легко. С диском - очень неудобно и надо обрабатывать IOExceptions почти всегда.
    Диски внезапно полны сюрпризов. Могут быть сетевыми дисками.
    4) Разные диски имеют скорость на порядки разную.
    5) Диски ведут себя очень плохо на random access. От этого даже метрика IOPS появилась.
    Ее очень любят обсуждать админы баз данных.
    6) Существуют структуры данных которые спецом создавались только для дисков (B+Tree)
    7) Диск - переживает выключение питания.
    8) Самые разумные решения - сочетают в себе и диск и память в тех частях кода где это нужно.
    9) Есть интерфейсы программирования которые виртуализирут диск как память. Этим пользуется
    SQLite например.
    10) Диск может достигать очень высокой последовательной скорости чтения или записи в файл
    при условии отсутствия конкурирующих записей в данный момент. Этим пользуются в БД
    для журналирования событий.

    В принципе если современный программист просто будет использовать только оперативную память
    то никто ему не сможет ударить по рукам или подойти с какой-то метрикой и чего-то там измерив
    сказать что он неправ. Тут уж только падения по OOM и потери информации и performance issues
    могут быть каким-то значимым аргументом.
    Ответ написан
    3 комментария
  • Чем редактировать файл.bytes и .db?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Программисты, будучи студентами на 1-2 курсе изучают алгоритмы и структуры данных (АСД) чтобы
    писать более эффективные программы. При этом задача использования DBMS им еще не ставиться.
    На этом этапе они учатся оптимизировать и понимать разницу между o(1), o(n^2), o(lon(n)) и т.п.
    алгоритмической сложностью. Сложность определяет, как будет работать выбранный алгоритм
    при очень резком (шквальном) росте исходных данных. И если ты это не учил, то ты сто процентов
    напишешь фигню и твой алгоритм никогда не завершиться, какой-бы мощностьи процессор у тебя
    ни стоял. И вот чтобы дать анализ такой ситуации, как раз и нужны знания АСД. А работа на пределе
    мощностей сегодня везде. Игры. Рендеринг 3д. Майнинг. Обучение языковых моделей.

    Работая с MySQL ты этого не видишь т.к. часть алгоритмов скрыта от тебя под фасадом SQL API.
    Но тебе и недоступны вышеперечисленные задачи. Их стек - шире чем тот что ты используешь.
    И если ты собираешся всю жизнь работать на PHP/MySQL то скорее всего АСД тебе действительно не
    нужны.
    Ответ написан
    9 комментариев
  • Где брать исходники для приложений и игр?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ничего ломать не надо. Иди в github. Там - тонны всяких инди-игр и изучай. Это если ты хочешь пойти в геймдев.
    Популярные старые игры такие как СуперМарио, Doom, и ядерная часть Quake опубликованы в открытом доступе.
    Есть онлайн курсы. Они обычно продают какие-то учебные сорцы.

    А исходники современных и продаваемых игр - это предмет гордости разработчиков и они их не дают никому
    просто так.

    Изучать реверс инжинеринг с академической точки зрения - это интересно. Но если вы решили ломать
    и продавать игры - то я не одобряю. Здесь пахнет чем-то незаконным. Да и вообще ... портящим карму.

    А зачем нам в таком хорошем форуме портить карму и репутацию разработчиков?
    Ответ написан
    Комментировать
  • С++ На всех ли платформах одинаковая точность операций с float?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну ... тут нет теоретически верного ответа. Инфо-технологии - это как физика-естествознание.
    Тут надо просто взять два компиллятора и две платформы. Собрать код типа.

    float x = 3.14;

    и посмотреть sizeof(...)

    Можно еще глянуть как выглядит число 3.14 в бинарном представлении. Сделаешь это кастингом.
    И сделать выводы о стандартах хранения флоатов в данном компилляторе.

    Теоретически должен быть 32х битный везде.

    Но проверь!

    Бывают еще double (64bit) extended (80bit),
    half float (16bit не встречал в практике никогда но литература ссылается).
    Ответ написан
    2 комментария
  • Программирования учат или применяют?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для того чтобы делать свой сайт - можно не учиться. Просто начать делать.

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

    В самостоятельное последовательное обучение я не очень верю. Обычно большая частью новичков выгорает
    на втором месяце. Очень сложно что-то долго делать без фидбека или поощрения.
    Ответ написан
  • Какие есть способы верификации пользователей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно идет верификация номера телефона. Тоесть если чел обладает двумя смартфонами с 2 сим-картами то теоретически он может создать до 4 аккаунтов.

    Самих пользоватлей хрен проверишь. Для этого нужна биометрия. В Windows по крайней мере в настройках уже закладываются параметры сенсоров отпечатков и фото лица но пока эти настройки в моем корпоративном ноуте к примеру заблочены.
    Ответ написан
    Комментировать
  • Какую структуру данных выбрать для описания конфигуратора изделия?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно зачем автор протегал это АЛГОРИТМАМИ. Тут вобщем-то имеет место обычная работа с формочкой.
    Дизайнеры форм лабают это и не зная ваших умных абстракций. Просто пишут там хендлер на каждую радио-кнопку или на чек-боксик и в зависимости от действий - скрывают некоторые филды или подсвечивают.

    Но если вам интересна теория, то такое поведение можно описать небольшим конечным автоматом. Или
    в данной задаче несколькими конечными автоматами которые взаимосвязаны по реакции на переходы.

    Гуглить можно по FSM (Finite State Machine) и библиотек по сям и питонам будет много.

    Вообще данная задача еще не набрала критическую массу знаний чтоб кодить ее в автоматах.
    Время потраченное на библиотеки и на привязку их к формам может быть слишком большим
    и эффекта не будет. Будет разочарование.
    Ответ написан
    3 комментария
  • Как реализовать классификатор на датасете рукописных цифр?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эффективность идеи зависит тоже от того в каком виде представлены данные. Если рукописные цифры - это квадратные картинки (как в наборе MNIST) то тогда решается просто. Считай расстояние Хемминга для всех картинок ко всем. Там где расстояние будет минимально - найден кластер картинок. Или класс символов похожих на букву. Далее можешь искать среднее. Завести вещественные значения для кластера. (Тут кстати тебя надо спросить у тебя 1-битные изображения или GrayScale?)

    Если цифры еще не размечены на атласе картинок и тебе предстоит еще и найти их место-положение - то это
    задача уровня FineReader/Tesseract. Это посложнее будет и идей и методов там сразу еще +10 штук.

    Поэтому опиши как выглядят исходные данные. Понял да? Идей целый вагон. Только не заставляй распылятся на пустяки.
    Ответ написан
  • Как обучить ИИ по своим данным?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Зачем транзисторы? Нужна сверх-задача.
    Например.

    Загрузил туда все данные по котировкам - и завтра разбогател.
    Или загрузил всю историю литературы - и завтра стал литературным гением.
    Или загрузил всю науку за последние 20 веков - и стал новым Ноббелевским лауреатом.

    Зачем унижаете возможности GPT?
    Ответ написан
    Комментировать
  • Почему скалярное произведение не нормализованных и коллинеарных векторов разное при изменении их точек?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Все правильно. Так и должно быть.
    Ответ написан
    Комментировать