• Как можно, и вообще можно ли хранить фото и видео в базе данных mongo?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если человек ничего не понимает в какой-то теме, он никогда не должен выступать с заявлениями вида "у меня возникла потребность". Потому что такие заявления базируются не на реальных потребностях, а на неграмотности, фантазиях и путанице в голове. И получаются вопросы вида "У меня возникла потребность забивать гвозди микроскопом. Я обыскал весь интернет но ничего понятного не нашел, только понял то что это делается на кухне. "

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

    Хранить фото и видео в БД - это как надевать штаны на голову.
    Хранить фото и видео в монге - как надевать на голову помойное ведро.

    Файлы надо хранить в файловой системе.
    Структурированные данные надо хранить в Базе Данных.
    Монгу не нужно использовать ни для чего. Это вообще не база данных, а просто хранилище по типу "куча мусора", которое используется исключительно в стильных модных молодёжных стартупах, в которых не нашлось ни одного специалиста по базам данных. Это была тупиковая ветвь, поднявшаяся на отсутствовавшей на тот момент поддержке JSON в базах данных и хайпе
    Ответ написан
    Комментировать
  • Какое оборудование нужно для соединения коммутаторов в разных зданиях на расстоянии 200 м?

    gbg
    @gbg Куратор тега Компьютерные сети
    Любые ответы на любые вопросы
    Проложите оптический кабель. Потребуется сам кабель, два оптических кросса, пигтейлы, патчкорды и медиакновертеры.

    Также потребуются услуги сварщика оптики.
    Ответ написан
    8 комментариев
  • Какое оборудование нужно для соединения коммутаторов в разных зданиях на расстоянии 200 м?

    Соединить оптикой с sfp+ модулями, например
    Ответ написан
    Комментировать
  • Какое оборудование нужно для соединения коммутаторов в разных зданиях на расстоянии 200 м?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Вариант 1 (самый простой/дешманский): Делим участок на сегменты менее 100м, желательно чтобы стыки были в районе розеток. Покупаем самый дешевый обычный свитч DES/DGS-1005, подключаем и работаем
    Вариант 2 (по дороже): Вариант 1, только вместо свитчей POE-коммутаторы(инжекторы)/удлинители. Если к местам стыков нет возможности подвести 220В
    Вариант 3 (надежный/геморойный): Оптоволокно, если позволяют условия - можно купить готовый оконеченный патчкорд и протянуть, если нет - тянуть кабель и оконечивать. Любой провайдер подрядиться такое спроектировать/сделать.
    Вариант 4. (в прямой видимости): WI-FI радиомост на направленных точках доступа/антенах. Ну не забиваем, что от каждой точки доступа до ближайшего свитча также может быть до 100м
    Вариант 5. (когда проложить нет возможности): Использование технологий PLC (powerline) - подключение по существующей электропроводке, через спец адаптеры. VDSL - подключение по существующей прямой телефонной линии (1 паре)
    Вариант 6. (арендный) При наличии на обоих концах точек присутствия провайдера. Заказать услугу темного волокна или mpls, объединение сетей
    Вариант 7. (интернетный): При наличии на обоих концах точек присутствия провайдера. Объединение сетей через классический VPN.
    Ответ написан
    2 комментария
  • Как можно посмотреть локальный сайт на моем компе через телефон?

    boratsagdiev
    @boratsagdiev
    UPD: в 2023 году я бы всё же использовал ngrok.

    Ставим npm и browser-sync: https://www.browsersync.io/

    Запускаем локальный сервер (у меня Openserver), открываем консоль в локальной папке, где лежит ваш сайт и запускаем в ней browser-sync с опцией --proxy

    browser-sync start --proxy mylocal.dev

    browser-sync выдаст в консоль что-то такое:

    [BS] Proxying: http://local.dev.domain
    [BS] Access URLs:
     ------------------------------------
     Local: http://localhost:3002
     External: http://192.168.1.6:3002
     ------------------------------------
     UI: http://localhost:3003
     UI External: http://192.168.1.6:3003
     ------------------------------------


    Вам нужен тот что External - http://192.168.1.6:3002, вбиваете его на телефоне и смотрите (естественно телефон должен быть подключен к той же сети, куда подключен и ПК).
    Вот только что проверил с сайтом на Wordpress - работает.
    Ответ написан
    Комментировать
  • Возможна ли реализация в fancybox 3 "Customized layout" (как в примере на сайте) из коробки?

    coollogin
    @coollogin Автор вопроса
    www.houseofcool.ru
    Спасение утопающих - дело рук самих утопающих! =)
    Спарсил страницу с примером:
    JS
    $('a[data-fancybox="cl-group"]').fancybox({
    
    		baseClass : 'fancybox-custom-layout',
            margin    : 0,
    		infobar   : false,
            thumbs    : {
                hideOnClosing : false
            },
            touch : {
                vertical : 'auto'
            },
            closeClickOutside : false,
            // Customize caption area - append an ad to the bottom
            caption : function( instance ) {
    
                var ad = '<div class="ad"><p><a href="//fancyapps.com/fancybox/">fancyBox3</a> - touch enabled, responsive and fully customizable lightbox script</p></div>';
    
                return ad + ( $(this).data('caption') || '' );
    
            }
    });

    CSS
    .ad {
    	display: none;
    }
    
    @media all and (min-width: 800px) {
    
    	.fancybox-custom-layout {
    		border: 20px solid #c7bfbf;
    	}
    
    	.fancybox-custom-layout .fancybox-bg,
    	.fancybox-custom-layout.fancybox-container--ready .fancybox-bg {
    		background: #efefef;
    		opacity: 1;
    	}
    
    	.fancybox-custom-layout .fancybox-controls {
    		opacity: 1;
    		position: absolute;
    		top: 0;
    		left: auto;
    		right: 0;
    		bottom: 0;
    		width: 44px;
    		background: #5E4950;
    	}
    
    	.fancybox-custom-layout .fancybox-button {
    		background: transparent;
    	}
    
    	.fancybox-custom-layout .fancybox-buttons button:hover {
    		background: rgba(20, 20, 20, 0.4);
    	}
    
    	.fancybox-custom-layout .fancybox-caption-wrap {
    		top: 0;
    		right: 44px;
    		bottom: 0;
    		left: auto;
    		width: 250px;
    		padding: 0;
    		box-shadow: none;
    		background: #FF6666;
    		font-weight: bold;
    
    		/* Disable transitions */
    		opacity: 1;
    		visibility: visible;
    		-webkit-transition: none;
    		   -moz-transition: none;
    		        transition: none;
    	}
    
    	.fancybox-custom-layout .fancybox-caption {
    		border: 0;
    		padding: 50px 15px;
    		color: #fff;
    	}
    
    	.fancybox-custom-layout .fancybox-slider-wrap {
    		right: 294px;
    	}
    
    	.fancybox-custom-layout.fancybox-container--thumbs .fancybox-controls {
    		right: 220px;
    	}
    
    	.fancybox-custom-layout.fancybox-container--thumbs .fancybox-slider-wrap {
    		right: 514px;
    	}
    
    	.fancybox-custom-layout.fancybox-container--thumbs .fancybox-caption-wrap {
    		right: 264px;
    	}
    
    	.fancybox-custom-layout .fancybox-thumbs {
    		top: 0;
    		bottom: 0;
    		background: #c7bfbf;
    	}
    
    	.fancybox-custom-layout .fancybox-thumbs > ul > li {
    		border-color: #c7bfbf;
    	}

    Ответ написан
    Комментировать
  • Как изменить надпись на кнопке при нажатии?

    cimmwolf
    @cimmwolf
    Веб-разработчик
    Видимость элемента изменяется в конце анимации, то есть, в вашем случае, через 400 миллисекунд. Получается, что вы проверяете условие видимости ещё до того, как элемент #filter появится или исчезнет.

    Используйте callback функцию по завершению. Вот так код заработает:
    $('.dop').on('click', function () {
        var $btn = $(this);
        $('#filter').toggle(400, function () {
            if ($(this).is(':hidden')) {
                $btn.html('Показать дополнительные параметры поиска');
            }
            if ($(this).is(':visible')) {
                $btn.html('Скрыть дополнительные параметры поиска');
            }
        });
    });


    Не забудьте, что код должен выполняться после загрузки DOM.
    Ответ написан
    Комментировать
  • Как в yii2 сгруппировать результат запроса по дате (timestamp)?

    dergus
    @dergus
    $articles=Article::find()->orderBy('sort_date DESC')->limit(10)->All();
    $sorted_articles=[];
    foreach($articles as $article){
          $dt=date('d.m.Y',$article->sort_date);
          $sorted_articles[$dt][]=$article;
    }
    Ответ написан
    1 комментарий