• Какие есть алгоритмы сжатия числа?

    wataru
    @wataru
    Можно хранить в битовом массиве, тогда потребуется ровно 10 бит для каждого числа. Каждые 4 числа занимают 5 байт.

    Будет небольшое замедление при записи и считывании чисел из такого массива (Надо найти смещение, прочитать 2 каких-то байта, отбросить лишние биты)

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

    @camelCaseVlad
    В UI Development существует концепт оптимистичного UI (optimistic UI).

    Самый простой пример данного концепта - нажатие на кнопку "Мне нравится" со счетчиком поставленных лайков. На клиенте можно сделать +1 сразу же, и не заставлять юзера ждать, пока с сервера придет новое значение лайков на данной кнопке.

    Решение вашей проблемы зависит от выбранных вами инструментов при создании приложения, но вы можете сделать нечто похожее на это:

    Вот как выглядит ТУДУ с ожиданием сервера:

    1*9r4u7IxFQkl8cNcOI4IYUw.gif

    Вот как выглядит с оптимистичным юай:

    1*aOhoD9FUKiEBUQM39zvvUg.gif

    Тут видно, что новый, не записанный на сервере Item отображается в стиле "Loading..."

    Используйте данный подход, дайте загружаемой Item временный ID
    Ответ написан
  • К чему применять интерфейс?

    @Cheypnow
    Интерфейс описывает контракт.
    Абстрактный класс описывает базовое поведение, общее для нескольких потомков.
    В чем проблема?
    Ответ написан
  • Как сделать удалённую сеть локальной?

    Jump
    @Jump
    Системный администратор со стажем.
    Как сделать удалённую сеть локальной?
    Судя по всему она и так локальная а не глобальная. Так что ничего не нужно делать.

    Нужно например из дома или офиса создать такое подключение, чтобы я был в локальной сети того роутера и контролировал её через ту самую заветную программу
    Поднять VPN.
    Арендуете сервер с белым адресом, поднимаете на нем VPN настраиваете подключение к нему обоих сетей и все.
    Можете у себя поставить VPN сервер, если есть белый адрес, а не арендовать.
    Ответ написан
  • Как сделать удалённую сеть локальной?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Гуглить что такое VPN, и как его поднять на вашем роутере
    Ответ написан
  • Как сделать авторизацию в программе на C++ с базой данных?

    "Правильная" авторизация возможна только на сервере баз данных, когда пользователь авторизуется на сервере и по итогам сервер предоставляет ему права доступа к данным и операциям над ними.
    Ставите сервер баз данных - например PostgreSql
    Установка создает пользователя с максимальными правами и просит указать его пароль.
    В приложении используете соответствующую библиотеку для доступа к бд - до подключения спрашиваете логин, пароль, после подключаетесь с введенными данными.

    Все зависит от требований безопасности и критичности утечки данных из базы.

    Если делается защита от дурака для локальной базы(например SQLite) - то можно и в самой базе хранить пользователей и хэши паролей. Но при этом пользователь имеет доступ к самой базе в виде файла - может его копировать и модифицировать.
    Ответ написан
  • В каком разделе математики изучается вывод формул?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Алгебра.
    Начать со школьного учебника.
    Ответ написан
  • Какой уровень ноутбуков относительно пк?

    @evgeniy_lm
    Чисто технически CPU ноута и десктопа ни чем не отличаются, но тепловой пакет ноутбучного процессора должен быть существенно ниже. Как правило это достигается снижением тактовой частоты и уменьшением кеша. Таким образом ноутбучный CPU медленнее десктопного на 30-35% (иногда больше) при одинаковой стоимости.
    Так же нужно понимать, что критерии миниатюризации других компонент ноута куда выше аналогичных десктопа. В результате имеем в случае одинаковой производительности ноут будет в 1,5-2 раза дороже десктопа.

    Ноут 11 года это не более чем технологический мусор и обсуждать его возможности глупо

    PS нужно понимать, что ноутбук это не великое счастье, а суровая необходимость. Если вам нет нужды перемещаться вместе с компом, значит ноут вам совершенно ненужен.

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

    saboteur_kiev
    @saboteur_kiev
    build engineer
    Мне нужна книга или статья, в которой подробно разбираются файловые системы.

    Целью является создание небольшого менеджера файлов.


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

    Детали файловой системы нужны, если вы хотите писать свой драйвер, свою системную утилиту для работы с диском напрямую (восстановление файлов, проверка/дефрагментация/etc)

    Материалов - полно, просто гуглите. И учите английский либо юзайте переводчик. Для технических статей, его обычно достаточно, например
    https://translate.google.com/translate?sl=en&tl=ru...
    Ответ написан
  • Как определять сложность алгоритма?

    @Zolg
    Какая сложность алгоритма в О нотации будет для сложения/умножения матриц?

    Умножение матриц - не алгоритм, а операция.
    Алгоритм конкретный способ ее реализации.
    Сложность 'наивного' алгоритма умножения - O(n^3)
    Сложность, например, алгоритма Штрассена O(n^2,81)

    Есть ли какая-то формула или методика для рассчёта?!
    элементарно: считаете количество (для О-нотации - максимальное) элементарных операций, необходимых для вычисления алгоритма для входных данных размерности n. Константу сокращаете.

    ps:
    'вычислительная сложность' показывает только отношение того, насколько дольше будет вычисляться алгоритм, при увеличении размера входных данных. но совершенно ничего не говорит о объеме вычислений в абсолютных цифрах.
    многие 'быстрые' алгоритмы на малых размерах входных данных (в абсолютных цифрах) проигрывают 'медленным': да, количество вычислений с ростом n растет медленней, но вплоть до какого-то n самих вычислений больше
    Ответ написан
  • Два одинаковых файла имеют разный размер в байтах?

    @antonwx
    2 варианта:
    1) BOM
    2. В одном файле в качестве переноса строки используется \r\n, в другом - \n
    Ответ написан
  • Бинарный код всегда и везде один и тот же?

    gbg
    @gbg
    Баянист. Тамада. Услуги.
    Бинарный код можно условно разделить на программу и данные (но данные могут быть вшиты в программу).
    О программном коде - он различается для процессоров разных архитектур и версий. Процессоры разных версий могут поддерживать разные наборы инструкций, поэтому даже в рамках одной архитектуры x86_64 закинуть программу с более позднего Core на более ранний Pentium 4 не получится - будет ругань на отсутствие поддержки AVX2, например - программа работать не будет, будет падать.

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

    О данных. Как уже написали, для целых чисел может быть разный порядок следования их байтов. Зависит это от процессора - поэтому, при обмене данными по сети или в виде файлов, если программы могут работать на машинах с разной архитектурой, данные либо конвертируют в какой то один порядок байт (сетевой порядок, например), либо преобразуют в текст из первой половины таблицы ASCII (коды от 0 до 127) разными способами.

    Для чисел с плавающей запятой есть стандарт представления IEE-754 - чаще всего, они хранятся и передаются в нем, либо конвертируются в текст.

    Ну и для текстов есть разные кодировки, и единственное, что в них совпадает - это коды для символов [0-127]. На остальных местах в разных кодировках может быть все что угодно.
    Ответ написан
  • Почему float == int == double?

    gbg
    @gbg
    Баянист. Тамада. Услуги.
    Я уже один раз вам советовал забыть нафиг похапе, а вы снова за свое. Динамическая типизация требует постоянного таскания за всеми сущностями в программе информации об их типах, что нафиг не нужно сиплюсплюсу. В этом языке действует принцип "не платить за неиспользуемые фичи". Для большинства программ, которые пишут на C++, нет нужды в таскании информации о типах.

    Положили вы в память матрицу 100 000 * 100 000 по 8 байт, съели 80 гиг, а вам еще рядом надо 40 гиг под типы (если идентификатор типа ест 4 байта)? Ну уж нет.

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

    Так что ответы на ваши вопросы:
    1. Потому что для сравнения типы были неявно приведены. Причем для чисел с плавающей запятой вы рискуете узнать для себя много нового, пытаясь сравнивать их напрямую с чем-либо.
    2. Никак. C++ хранит типы только для объектов, и то в очень ограниченной форме. Ну и может выводить типы статически, если очень хочется.
    3. Играет. 1.0 - это double 1.0f - float
    4. См. ответ 3. sizeof(double) == 8, sizeof(float) == 4
    Ответ написан
  • Как рассчитать среднее значение на замкнутой шкале?

    Сложить векторы.

    Каждый азимут перевести в пару координат (x, y), полагая длину равной 1.
    Ответ написан
  • Существует ли в математике при описании D(f) символ / {какое-то число}?

    BojackHorseman
    @BojackHorseman
    ...в творческом отпуске...
    обратный слэш \ это разность множеств. в данном случае множества вещественных чисел R и множества {0}
    Ответ написан
  • Что означает "?v=1" при подключении .css?

    dollar
    @dollar
    Означает, что какая бы ни была кеширующая система на сервере и на клиенте, добавление такой фигни форсирует кеш (почти) без вариантов, потому что это как бы другой файл. То есть если что-то изменили в css, можно это добавить, и в новой страничке загрузится новая версия css, а не из кеша.
    Ответ написан
  • Что значит знать REST API?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    В плане теории достаточно понимать всё, что есть по ссылке

    https://restfulapi.net/

    А если еще и в Richardson Maturity Model разобраться - то скорее всего на собеседовании начнет плавать даже проводящий его :)

    Спрашивают как правило про HTTP методы, правила формирования URL для взаимодействия с ресурсами, версионирование и коды ответов. В любом случае по ссылке всё есть.

    На фронтенде возможно еще могут спросить про библиотеки, которыми пользовалась, чтобы запросы делать, метод хранения авторизационного токена и еще какую-нибудь специфику
    Ответ написан
  • Что значит знать REST API?

    miraage
    @miraage
    dev
    Как такового REST API нет. Есть архитектурный стиль REST, а есть RESTful Services.
    (Не знаю, кто как, а я никогда не любил вакансии, которые написаны тяп-ляп непонятно кем.)

    https://en.wikipedia.org/wiki/Representational_sta...
    https://stackoverflow.com/a/1568858/790304

    TL;DR: REST лишь задаёт формат общения. И если сервис следует этому формату, то его можно назвать RESTful.
    Ответ написан