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

    mayton2019
    @mayton2019
    Bigdata Engineer
    По сути задача звучит так.

    Разработать непозиционную систему счисления для представления любого простого числа наименьшим числом символов системы.

    Непозиционная в качестве примера - это римская. I/II/III символы. Или система фибоначчи 1,1,2,3,5,8. В твоём случае символ включает в себя еще и знак плюс-минус.
    Ответ написан
    7 комментариев
  • Как оптимизировать базу данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Из того что автор описал - у меня возникает архитектурный вопрос. Кто придумал - использовать JSON для данных которые часто обновляются? Это - антипаттерн. Вы какое железо не поставте - у вас будет плохой перформанс.

    Вам необходимо все данные которые имеют реляционный (точечный) доступ убрать из JSON. По сути - развалить его на модель EAV или что-то вроде того (Relational Data (RD)). Обновления станут быстрее. А для отчотности - если вам так уж важен JSON - отдельные джобы которые будут переливать данные из RD в JSON или формировать его на лету средствами клиента. В этом случае у вас не будет накладных расходов даже на хранение.
    Ответ написан
    Комментировать
  • Как подсчитать/проверить количество параллельных ветвей процессора?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У вас - странная терминология. Процессор имеет на борту несколько АЛУ (маркетинговое название Thread).
    И вы пытаетесь практическим способом посчитать сколько их?
    Ответ написан
  • JAVA. С чего начать?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    По смыслу эта задача похожа на Квадрат Полибия. Автор может погуглить по этому ключевому слову и найти готовые реализации. Но мне кажется что у автора еще куда большие пробелы в навыках. Нужно иметь навык в написании вложенных циклов.

    Тоесть потренироваться на простых задачах.

    А эту сложную задачу либо вообще отложить пока. Либо разбить на последовательность элементарных. Как разбить я не знаю. Это автор должен сам для себя придумать исходя из своего понимания шагов.
    Ответ написан
    Комментировать
  • Почему алгоритм дейкстры не работает с ненаправленными графами?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если под классического Дейкстру вы подсунете граф с циклами - то он зациклиться и никогда не выдаст ответа.

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эта тема не про иерархию и ООП.

    А про алгоритмы и структуры данных. На их языке вопрос должен звучать так.

    - Дано дерево объектов {Car}/{Box}/{Bomb}
    - И при возникновении события в листовом уровне дерева - должна удаляться вся цепочка Parents вплоть до уровня Car.
    Ответ написан
    Комментировать
  • Какие распределенные реляционные базы данных бывают?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Архитектурно есть много путей решения этой задачи. Есть дорогие и коробочные. Oracle + GoldenGate.
    Есть более дешевые (выше упомянуты). Все зависит от ваших амбиций. Вы хотите сами больше разрабатывать или просто брать готовые решения.
    Ответ написан
    Комментировать
  • Как передать два параметра в тред?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку С++ - это объектный язык то обсуждение того как что-то передать надо вести в терминах объектов.
    Этож не ассеблер. Смотрите на шапку функции по созданию треда.
    HANDLE CreateThread(
      LPSECURITY_ATTRIBUTES   lpThreadAttributes,
      SIZE_T                  dwStackSize,
      LPTHREAD_START_ROUTINE  lpStartAddress,
      __drv_aliasesMem LPVOID lpParameter,
      DWORD                   dwCreationFlags,
      LPDWORD                 lpThreadId
    );


    В ней lpParameter должен быть указателем на структуру из вашего массива и длины. Или просто вектор целых чисел в терминологии STD (std::vector)
    Ответ написан
    Комментировать
  • Какими знаниями обладают разработчики ПО для сетевого оборудования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Очень узкими. Обычно они работают с 1 типом железа. Cisco. Dlink. Может Huavei. И кодят только на сях прошивки.
    Ответ написан
    Комментировать
  • Есть ли легкий мессенджер, только для двоих человек, с шифрованием E2E?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В рамках шутки. Купите себе КВ-трансивер. Вряд-ли кто-то в наше время следит за аналоговой связью которая как Неуловимый Джо никому не нужна.

    Ну а если серъезно - то - этот вопрос решал еще лет 20 назад один еврейский дядечка. Филипп Циммерман. Он написал опенсорцный продукт PGP (Pretty Good Privacy) и в виде книги сорцами опубликовал его для использования. Включил туда набор шифров с военным уровнем разрядности (там кажется до 4096 бит ключи) и сделал реализацию в виде консольных утилит. Предполагается что вы будете слать емейлы шифрованные этой утилитой. Или через любой канал который текстовый кидать шифрованные мессаги.
    Ответ написан
    Комментировать
  • Что изменится при использовании AWS API Gateway c подключением существующего API endpoint?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Наиболее дешевый вариант масштабирования - это переписать REST-приложение vasya на AWS Lambda. Это не всегда архитектурно возможно ввиду ограничений на сеанс и объемы ресурсов. Но если получится - то можно запускать до 1000 экземпляров Васи в параллель.
    Ответ написан
  • Что означает void *?

    mayton2019
    @mayton2019
    Bigdata Engineer
    void * означает указатель на область памяти неизвестного типа. При разыменовании тебе надо будет
    заранее знать что за зверь скрывается под этой памяти чтобы правильно интерпретировать результат.

    В современном программировании безтиповые указатели - считается угрозой безопасности и большинство компилляторов выдают WARNING. При прочих равных условиях лучше void * не использовать а использовать ... ну например указатель на массив байт или на такую-же структуру s_list к примеру.
    Ответ написан
    Комментировать
  • Какой язык программирование yчить новичкy?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть два взгляда и два фунтаментальных подхода к вопросу.

    1) Если вы хотите учить язык чтобы заработать деньги - откройте местные сайты типа work, job, rabota, linkedin e.t.c.
    и просто посмотрите какие специалисты требуются на рынке и сколько им платят. Смотрите в разрезе вашего региона или края. Мой личный опыт (опыт ent. разработчика для бизнеса) подсказывает что основные трендовые языки разработки это Java/C#). Это языки - долгоиграющиее. Первому уже более 20 лет. И есть огромный пласт ПО который уже написан на них и требует поддержки и внесения изменений. Этот пласт ПО - вечен. Ему нет замены и вы будете всегда обеспечены работой. Чисто ради смеха отмечу что есть язык COBOL на котормо в своё время был написан пенсионный фонд США и этот язык до сих пор востребован несмотря на то что его синьоры уже отрастили бороды и вышли на пенсию а то и померли.

    2) Если вы хотите учить язык для души или ради забавного мозгового эксперимента - учите Haskell, Lisp. Эти языки интересны как вещь в себе и вы можете бесконечно много времени медитировать над их исходниками и ваше восхищение или нирвана не будет иметь пределов. Не спрашивайте меня по практическому их приминению. Это языки - концепты. Смысл которых - генерация идей. А не решений. Решения же потом переходят в Java/C#/C++ уже как конкретные подходы. Но сначала эти идеи проходят вызревание в инкубаторе языков функциональной разработки таких как Хаскель и ЛИсп.
    Ответ написан
    2 комментария
  • В чём главное отличие информации от ключей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если взять фильтр Блума - то в нем принципиально нет информации. Есть только ключи. Более того. Стохастичные. Более того любая попытка расширить структуру заканчивается неудачей.

    Так может быть не стоит ставить вопрос деления вселенной на ключи и неключи?

    Иначе часть структур данных придется выбросить.
    Ответ написан
    Комментировать
  • Как определить функцию по значениям пар y;x?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего ответов будет много.

    Если скопление точек - похоже на "рога" на плоскости то под функцию одинаково подходит и косинус, и парабола и гиперболический косинус.

    И здесь очень важно понять что четкого ответа не будет.
    Ответ написан
    Комментировать
  • Как на OpenCl работать с изображением?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Данный пример с чтением png - неудачный.
    Дело в том что декодирование png не параллелится. Оно будет выполнено на 1 ядре процессора. И это займет 80% времени. Я так думаю. А уже декорированную матрицу RGB - да можно процессить на Opencl разбивая картинку на строки или на фреймы. Но преимущества opencl будут потеряны. Ведь мы уже львиную часть времени простояли ожидая декодирования.
    Ответ написан
    Комментировать
  • Доступ к приватным полям через арифметику указателей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Формально, с точки зрения ООП так делать нельзя. Я не знаю продуктовых задач где такой злостный хак имел бы место.

    А преподавателю который это придумал - надо оторвать яйца.
    Ответ написан
    6 комментариев
  • Какие бы вы задавали вопросы начинающему Linux-администратору на собеседовании?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я сам не админ. Но причастен к сектору эксплуатации инфо-технологий на предпрятиях. Разрабатывал и внедрял.

    Мне кажется вопрос не так звучит. В наше время ценится не эникейщик а автоматизатор. Поэтом Линукс админ должен уметь автоматизировать рутину. Тоесть не "стучать по клавишам" а уметь взяв bash/python сделать рутинное действие на множестве файлов или конфигураций.

    По командам - не скажу. Но мне кажется тут вопрос не в командах (nslookup/dig) а в понимании сетей и протоколов. В понимании верхнего уровня архитектуры. И если этот уровень понятен - то неважно какая команда. Это тоже самое что строителя спрашивать знает ли он "уровень" или "отвес."
    Ответ написан
  • Как соединить турникет с компьютером через интернет?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Технически... не ставте цели реал-тайм управления. Турникет должен работать как узел DNS. Даже в случае отсутсвия связи - быть автономным настолько - насколько это можно.
    Ответ написан
    Комментировать