• Зачем использовать реляционные субд для этой ситуации?

    @xfg
    Если комментариев к статье неограниченное количество, то хранить данные таким образом - неудачная идея. В mongodb документ по умолчанию не может превышать более 16 mb, но даже при отсутствии подобного ограничения, это привело бы к единовременному считыванию большого объема данных в память. В таком случае данные следует моделировать также, как и в РСУБД.

    Есть CAP-теорема и выбирать тип базы данных нужно исходя из того, какие 2 из 3 свойств для вас важнее. РСУБД дают согласованность и доступность (CA), но жертвуют возможностью разделения такой базы, nosql решения идут другим путем и жертвуют согласованностью в пользу доступности и устойчивости к разделению (AP). Согласованность данных в таких системах достигается при помощи шаблона Saga вместо ACID.

    В целом NoSQL это про проекты данные которых не помещаются в рамках одного сервера, а не про то, каким образом моделировать эти данные. Вложенные документы в mongodb - это скорее следствие её архитектуры, которое используют как маркетинговый ход, чем решение, которое будет использоваться повсеместно. В подавляющем большинстве случаев документы будут ссылаться друг на друга, точно также как это происходит и в РСУБД.

    Для проекта с крохотными объемами данных логичнее выбирать РСУБД и тем самым значительно упростить себе жизнь. Но в целом как используют NoSQL, шардируют данные и как достигают согласованности данных при отсутствии ACID знать желательно, хотя бы в общих чертах.

    Самое ужасное, это выбрать базу данных и использовать её неправильно, как пример документа с вложенными комментариями при условии их бесконечности в mongodb. Пишем скрипт генерирующий триллион комментариев к статье, а затем просим нам выдать эту статью и сайт уходит в офф. Хорошо что в mongodb есть защита от дурака.
    Ответ написан
    1 комментарий
  • На VK.COM когда-либо можно было скачать видео без использования стороннего софта?

    Zoominger
    @Zoominger
    System Integrator
    Нет, не было никогда.
    Ответ написан
    Комментировать
  • От чего зависит загруженность HDD диска?

    @Dobryak88
    Системный администратор
    Windows 10 очень любит кушать жёсткий диск для фоновых процессов типа svchost.exe, обновления, телеметрия и т.д. А диск у Вас медленный, 5400 оборотов в минуту. Нужно либо отключать всё фоновое по максимуму, либо возвращать ОС на SSD. И и это, IMHO, самое разумное решение, так как с Виндой на медленном диске софт на быстром работать будет всё равно не очень быстро.
    Ответ написан
    8 комментариев
  • Андроид смартфон в качестве переферии пк?

    @antonwx
    использовать основную и фронтальную камеры android смартфона как веб-камеры для ПК

    IP Webcam Pro
    микрофон смартфона - как микрофон компьютера

    Wo Mic
    динами смартфона - как динамик компьютер

    SoundWire
    Ответ написан
    2 комментария
  • Как выбрать направление развития в Python?

    letoshelby
    @letoshelby
    Изучаю python, django
    1) Веб-разработка

    На python/django/flask пишут бэкэнд, html/css/js тебе нужно для фронта. Направление хорошее.
    2) ИИ, Машинное обучение

    Если математика не ваше, то скорее всего лучше идти в веб.
    3) Разработка игр

    На python делают легкие игры, вроде Flappy Bird. Но в целом для геймдева лучше выбрать другой язык.

    1) Базовые структуры данных
    2) Наборы
    3) ООП
    4) Написание классов.

    Для изучения самых основ python есть огромное количество источников:

    pythontutor.ru - изучение практикой
    https://stepik.org/course/67/promo - хороший и бесплатный курс с основами
    https://learnxinyminutes.com/docs/ru-ru/python3-ru/ - тоже советую почитать

    А так же огромное количество книг, курсов на ютубе, курсере и т.д.

    но откуда черпать инфу по Django?

    По джанго хорошей инфы на русском уже меньше, но найти все ещё легко:

    https://djbook.ru/index.html
    https://tutorial.djangogirls.org/ru/

    https://docs.djangoproject.com/en/3.0/ - ну и самое лучшее, официальная документация, но она на английском
    Ответ написан
    2 комментария
  • Как сменить php 7.3 на Mac OS?

    fcherkassy
    @fcherkassy
    Откройте терминал и выполните команду:

    curl -s https://php-osx.liip.ch/install.sh | bash -s 7.3
    Система безопасности macOS может потребовать ввод пароля для получения доступа к системным файлам — вводите его. Скрипты компании Liip для установки PHP не содержат в себе вредоносного кода.

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

    В результате скрипта будет развёрнут архив с файлами PHP 7.3 в директории пользователя, в моём случае, это было здесь:

    /usr/local/php5-7.3.8-20190811-205217/
    Окончание установки выглядело таким образом (обратите внимание на путь к распаковываемым файлам):

    Настройка работы PHP 7.3 из терминала
    Чтобы проверить текущую версию, запускаемую в терминале, выполните команду

    php -v

    Для работы composer в терминал у меня была поставлена версия PHP 7.2.16. Чтобы настроить запуск из терминала новой версии PHP нужно в файле ~/.bash_profile, если вы используете окружение терминала bash, добавить в конец файла следующие строки:

    export PATH="/usr/local/php5-7.3.8-20190811-205217/bin:$PATH"
    export PATH="/usr/local/php5-7.3.8-20190811-205217/sbin:$PATH"
    Путь к установленной версии PHP может отличаться от указанного мною. Актуальный для вас путь содержится в терминале, где происходила установка новой версии и запуск команды curl. После сохранения изменений в файле .bash_profile, внутри новых сессий терминала будет использоваться указанная вами версия. Для обновления версии внутри текущей сессии терминала, следует прочесть файл заново с помощью вызова:

    source ~/.bash_profile
    Теперь при вызове php -v в терминале вы должны увидеть последнюю версию PHP:

    Если нет файла ~/.bash_profile
    В случае, если файл ~/.bash_profile не создан, то это можно сделать прямо из терминала с помощью команды:

    touch ~/.bash_profile
    А затем взять в редактирование с помощью выполнения вызова:

    sublime ~/.bash_profile
    Если у вас не настроен запуск редактора sublime text из консоли, то это вы можете сделать с помощью этой статьи.

    Настройка PHP 7.3 во встроенном в macOS сервере Apache
    В операционную систему macOS изначально установлен веб сервер Apache, который позволяет разрабатывать сайты и полностью себя конфигурировать без установки LAMP, Apache через brew и т.п. Чтобы встроенный сервер Apache загружал нужную версию модуля PHP следует ему указать это в конфигурационном файле. Файл конфигурации находится по адресу:

    /private/etc/apache2/httpd.conf
    В этом файле следует найти строку, содержащую слово php. По умолчанию, она выглядит следующим образом:

    #LoadModule php7_module libexec/apache2/libphp7.so
    Следует убрать у неё в начале #, чтобы эта строка не была закомментирована, а также прописать вместо libexec/apache2/libphp7.so полный путь до файла libphp7.so в директории с новой версией PHP 7.3. В моём случае, строка выглядит следующим образом:

    LoadModule php7_module /usr/local/php5-7.3.8-20190811-205217/libphp7.so
    Сохраняем файл, вводим пароль, подтверждающий наши права на сохранение файла в системном месте. А затем нужно перезапустить сервер Apache c помощью команды:

    sudo apachectl restart
    Ответ написан
    2 комментария
  • Как лучше сделать подобную веб-анимацию (видео при скролле)?

    @VegasChickiChicki
    Ответ написан
    Комментировать
  • Как использовать трейты с пространствами имен?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    class MyClass
    {
        use \Traits\MyTrate;
    }
    Ответ написан
    Комментировать
  • Как можно автоматически устранить на изображении шум в виде мелкого узора без четкой закономерности?

    maaGames
    @maaGames
    Погроммирую программы
    В фотошопе есть размытие Smart Blue, параметрами поиграть нужно, чтобы с конкретным узором лучше справлялось. Это только после размытия, без изменения резкости/контрастности и прочего

    5dfae9f3b6c8b010190998.png
    Ответ написан
    Комментировать
  • Как вам такое решение задачки?

    @dimoff66
    Кратко о себе: Я есть
    Немного кривоватое на мой взгляд, я бы сделал так

    const range = arr => arr
       .sort((a, b) => a - b)
       .reduce((agg, v) => {
          const currRange = agg[agg.length - 1]
          if (!currRange || v > currRange.last + 1) {
             agg.push({first: v, last: v})
          } else {
             currRange.last = v
          }
          return agg
       }, [])
       .map(v => v.first + (v.first !== v.last ? '-' + v.last : '')).join()
    Ответ написан
    Комментировать
  • Как сделать оплату на динамические счета?

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

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Перегрузки методов в php нет. Лучше продумать правильно архитектуру, чтобы набор аргументов был стабильным на уровне абстрактного класса/интерфейса, чем передавать методу переменное количество аргументов и искать потом причины багов и повод для рефакторинга. Также переменное количество аргументов дает соблазн давать методу лишние полномочия, размазывая его первоначальное предназначение.
    На уровне конструктора класса можно через dependency injection передать классы для логгирования, вывода инфы в консоль, тогда в методе run их не нужно передавать, но можно использовать внутри метода.
    Ответ написан
    6 комментариев
  • Как сверстать список под этот макет?

    @VegasChickiChicki
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    
    //именно это свойство сделает перенос на новую строчку, если места элементам не хватает
    flex-wrap: wrap
    //именно это свойство сделает перенос на новую строчку, если места элементам не хватает


    p.s. могут быть ошибки, без автоподстановки пока не могу >.<

    Если конечно я правильно понял в чем проблема...
    Ответ написан
    3 комментария
  • Есть ли аналоги или плагина для редактирования текста как на ресурсах vc.ru в статьях Вконтакте или Pikabu?

    @EvgeniiR
    https://github.com/EvgeniiR
    Это WYSIWYG-редакторы. Так и гуглите. Вот, например, клон медиума - https://github.com/yabwe/medium-editor (demo).
    Ничего сложного там нет - под капотом текст с определёнными тегами, с которым работает редактор, и умеет отдавать(для сохранения) и принимать(отображать).
    Ответ написан
    1 комментарий
  • Ноутбук/моноблок/стационарник - что подойдет для переездов?

    @EvilSide
    Sysadmin
    Я бы для таких целей присмотрел бы ноутбук с процесором серии i5-7 8xxxH и 16 Озу
    Стартуют цены на такие модели примерно от 1к$ по производительности обгоняют i7 3770 стационарный.

    А второй монитор присмотрел бы 24" и отправлял бы почтой туда куда переезжаешь.
    Ответ написан
    Комментировать
  • Под какие разрешения рисовать адаптивный дизайн?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Если немного подумать логически, то получится что расклад примерно такой:
    1. Мобилы. На примере Iphone 4 (другие мобилы, кроме лопатофонов имеют схожие размеры). Если держать телефон в руке вертикально, то ширина экрана 320 пикселей, если горизонтально то 480.
    2. Далее планшеты. На примере iPad (другие планшеты соответственно похожи по разрешениям). Если держишь вертикально, то 768, если горизонтально то 1024.
    3. Далее десктоп. Тут самое популярное на сегодня 1200+, рисовать варианты еще шире, обычно не имеет смысла, сайт просто центрируется на более высоких разрешениях. К тому же, большинство пользователей огромных экранов обычно не открывают браузеры на весь экран.

    В общем у вас должно получится примерно 5 разрешений в итоге (+ каждое из этих разрешений должно обладать некоторой гибкостью (+/- 30 пикселей), чтобы можно было учесть все разнообразие адройдовских экранов.
    Ответ написан
    1 комментарий
  • Задачки на "дробление чисел" для бенчмарков?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Странные у вас ассоциации с "дроблением чисел": ваши примеры сплошь целочисленные.
    Я бы предложил обращение матриц, численное решение дифур, рейтрейсинг.
    Ответ написан
    Комментировать
  • Как сделать фиксированный список комманд для пользователя в SSH?

    dummyman
    @dummyman
    диссидент-схизматик
    Есть стандартная для большинства дистрибутивов тулза chroot. Ее использует для собитвенных изоляций куча системного софта. Она есть везде и ее не придется устанавливать.
    Создаешь пользователя. Создаешь новую директорию.
    В ней создаешь основные системные папки. Одну из папок (например, /home) делаешь пользовательской, то есть меняешь хозяина chown на этого пользователя.
    Потом ссылками (команда ln) добавляешь в эти папки все то, к чему хочешь чтобы пользователь и программы запущенные под ним имели доступ.
    Все его сессии запускаешь через chroot.
    Не забываем ограничить использование hdd (группа команд quota).
    А потом ему можно дать возможность пользоваться хоть менеджером пакетов, даже устанавливая свой софт, юзер ничего не испортит.
    Классика хостинга, ёмн.
    $ man chroot
    Ответ написан
    Комментировать
  • Кому принадлежат симкарты?

    15432
    @15432
    Системный программист ^_^
    Продают? У метро постоянно бесплатно раздают симки билайн/мегафон/мтс. Всем подряд в руки суют. За каждого, кто закинет деньги на симку, они получают свой процент. Раньше карты были зарегистрированы на какого-нибудь Ахмеда Бдуралли, сейчас ни на кого не зарегистрированы. Кому принадлежат? Любые симки принадлежат оператору. Чья фамилия написана в личном кабинете - это уже нюансы.
    Ответ написан
  • Режим разработки на сайте. Как вносить изменения на работающий сайт в формате "demo"?

    "Все" поднимают для таких целей отдельный сайт. Это не обязательно новый сервер/домен, если код нормально написан, сайт будет одинаково работать, располагаясь как в корневой папке site.com, так и во вложенной site.com/testing.
    Если добиться работы во вложенной папке проблемно, заводится test.site.com.
    Git при этом замечательно пригодится, чтобы заливать все изменения - как при тестировании по мере изменений, так и по окончании - одним махом все.
    Ответ написан
    2 комментария