• Как автоматически развернуть картинку на стороне клиента использую js?

    @Prosspa Автор вопроса
    Короче какой вывод.

    Есть явные проблемы с определением ориентации. Я все перепробовал что можно было, абсолютно.
    Даже использовал нейронку GoogleVision для поворота, но потом как понял с этого запроса на гул от тако го же бедняги как и я...
    (https://issuetracker.google.com/issues/35903522)
    Нейронка не умеет определять позицию картинки, по крайней мере щас. Эта тема уже длится 4 года и все ни как не сделают эту функцию. Последний комментарий там был 15 июля, который гласит что метода нету.

    Потом следущий момент, код который есть у меня он рабочий, но жутко не точный. Он зависит от фактора картинки, у каждой картинки есть тип данных exif - (Кидаю ссылку что бы понимать что это)

    так вот. Этот параметр очень сильно зависит от аппарата на который было сделано фото. Что это значит, на андроиде и более старых версиях устройство, этот параметр игнорируется. На айфонах ставит не точно или вовсе не ставит (тестировал на своих X и 6s). Как раз таки те фото что у меня есть (ВУ водил) у большинства нету exif и определить какая щас ориентация у картинки попросту не возможно...

    Я использовал вот еще этот момент, описал php логику, но результат все тот же что и на js
    (https://stackoverflow.com/questions/3657023/how-to...)
    Но опять же, это все зависит от параметра exif, которого просто может не быть.

    Так же я пробовал загружать картинку через canvas что бы определить ориентацию.
    Потом полез в код вот этой библиотеки (https://github.com/blueimp/JavaScript-Load-Image/b...)
    Я тут все перелопатил и тут же снова все зависит от параметра exif...
    Логика построена на основе вот этой информации https://www.impulseadventure.com/photo/exif-orient...

    https://developer.mozilla.org/en-US/docs/Web/CSS/i...
    Есть еще вот такой метод, но он во первых поддерживается только FireFox. Во вторых использует exif (как там помечено). В третих он Deprecated

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

    Я думаю что кому то эта информацию пригодится.
    Ответ написан
    Комментировать
  • Как посмотреть, что занимает место на диске linux?

    @vlarkanov
    установи ncdu - очень удобная навигация и сразу понятно где "большая" папка, а где не очень.
    Ответ написан
    1 комментарий
  • Как посмотреть, что занимает место на диске linux?

    Melkij
    @Melkij
    PostgreSQL DBA, рассмотрю предложения о работе
    Вероятно запущенные процессы удерживают открытыми дескрипторы уже удалённых файлов, что не позволяет освободить занятое место ФС.

    Список дескрипторов и процессов можно получить например так:
    sudo lsof -a +L1
    Пример строки от меня:
    COMMAND     PID   USER   FD   TYPE DEVICE   SIZE/OFF NLINK    NODE NAME
    php       17455 melkij    4r   REG  254,1 1048576000     0 2624572 /home/melkij/tmpfile (deleted)

    php процесс с pid 17455 удерживает deleted дескриптор файла размером в 1гб.

    Далее адресно разбираться с процессами.
    Ответ написан
    2 комментария
  • Какой есть чат для сайта с API и приложением?

    kazarin0v
    @kazarin0v Автор вопроса
    Разработчик сайтов WordPress
    Еще решением оказалось то что есть чаты с нормальным api
    Такие как verbox.ru
    Ответ написан
    1 комментарий
  • Как выбрать пользователя который не равен заданному значению в Yii 2?

    @LaXiTy
    проще и короче не прибегать к строкам, как у Алексея, а использовать формат массива
    'query' => User::find()->where(['!=', 'id', 1])
    Ответ написан
    Комментировать
  • Как написать бота, который будет спамить в каналах через аккаунт?

    Noizefan
    @Noizefan
    Хочу, но не могу…
    Можно?
    Объясните, как?
    Ответ написан
    Комментировать
  • Yii2 и bootstrap 4, как обновить компоненты yiisoft/yii2-bootstrap до bootstrap4?

    @grozzzny
    Люблю кодить
    Подключите расширение через композер:
    composer require grozzzny/depends "dev-master"

    Затем в assets добавьте

    class AppAsset extends AssetBundle
    {
        public $depends = [
            'yii\web\YiiAsset',
            'grozzzny\depends\bootstrap4\Bootstrap4Asset',
            'grozzzny\depends\bootstrap4\Bootstrap4PluginAsset',
        ];
    }


    Класс Bootstrap4Asset при инициализации подписывается на события View и при возможности удаляет bootsrap 3
    class Bootstrap4Asset extends AssetBundle
    {
        public $sourcePath = '@vendor/twbs/bootstrap/dist';
        public $css = [
            'css/bootstrap.css',
        ];
    
        public function init()
        {
            parent::init(); // TODO: Change the autogenerated stub
            Yii::$app->view->on(View::EVENT_AFTER_RENDER, function (){
                unset(Yii::$app->view->assetBundles['yii\bootstrap\BootstrapAsset']);
            });
            Yii::$app->view->on(View::EVENT_BEGIN_BODY, function (){
                unset(Yii::$app->view->assetBundles['yii\bootstrap\BootstrapAsset']);
            });
        }
    }


    Таким образом можно играться с layouts.. Например админка может спокойно работать на bootstrap 3, а фронтенд на bootstrap 4.

    Но это еще не все.. Есть нюансы..
    С модальным окном пришлось унаследоваться от модального класса bootstrap 3
    С валидацией инпутов, перенаследовал миксины bootstrapa 4 и дописал в миксин реализацию от bootsrapa 3. (SCSS)
    Виджет меню стал примерно таким:
    <?= Nav::widget([
        'options' => ['class' => 'navbar-nav d-flex justify-content-between w-100'],
        'items' => [
            [
                'label' => ''Услуги,
                'options' => ['class' => 'nav-item'],
                'linkOptions' => ['class' => 'nav-link'],
                'url' => ['services'],
                'active' => Yii::$app->controller->id == 'services'
            ],
     ....
            [
                'label' => 'Контакты',
                'options' => ['class' => 'nav-item'],
                'linkOptions' => ['class' => 'nav-link'],
                'active' => Yii::$app->controller->id == 'contacts',
                'url' => ['/contacts']
            ]
        ]
    ]);?>

    Хлебные крошки:
    <nav aria-label="breadcrumb" class="mb-3">
        <?= Breadcrumbs::widget([
            'links' => $this->params['breadcrumbs'],
            'options' => ['class' => 'breadcrumb'],
            'tag' => 'ol',
            'itemTemplate' => "<li class='breadcrumb-item'>{link}</li>\n",
            'activeItemTemplate' => "<li class=\"breadcrumb-item active\" aria-current=\"page\">{link}</li>\n",
        ])?>
    </nav>

    Пагинация:
    <nav aria-label="Page navigation">
                <?= LinkPager::widget([
                    'pagination' => $provider->pagination,
                    'linkContainerOptions' => ['class' => 'page-item'],
                    'linkOptions' => ['class' => 'page-link'],
                    'disabledListItemSubTagOptions' => ['tag' => 'a', 'class' => 'page-link']
                ]) ?>
            </nav>


    Alerts:
    <?= Alert::widget([
                'options' => ['class' => 'alert alert-danger show', 'role' => 'alert'],
                'body' => $message,
            ]) ?>


    В общем в этой сборке cms от easyiicms, с которой можно спокойно работать с bootstrap 4. Там смеси от less и scss. CMS чисто шаблонная и измененная.. для себя писал, но решать вам
    composer create-project --prefer-dist --stability=dev grozzzny/yiicms www dev-master


    Вот еще надстройка Material Design for Bootstrap 4 с модулями от https://mdbootstrap.com:

    class AppAsset extends AssetBundle
    {
        public $depends = [
            ..
            //Material Design for Bootstrap 4
            'grozzzny\depends\mdbootstrap\MDBootstrapAsset',
            'grozzzny\depends\mdbootstrap\MDBootstrapPluginAsset',
            ..
       ];
    }


    В assetManager в главной конфигурации можно указать надстройки:
    'assetManager' => [
                'bundles' => [
                    // Если решили переопределить scss:
                    'grozzzny\depends\mdbootstrap\MDBootstrapAsset' => [
                        'basePath' => '@webroot',
                        'baseUrl' => '@web',
                        'css' => ['css/mdbootstrap/mdb.css'], 
                    ],
                    // Если решили подключить доступные модули в коллекции MDB:
                    'grozzzny\depends\mdbootstrap\MDBootstrapPluginAsset' => [
                        'chart' => true,
                        'enhancedModals' => true,
                        'formsFree' => true,
                        'jqueryEasing' => true,
                        'scrollingNavbar' => true,
                        'velocity' => true,
                        'waves' => true,
                        'wow' => true,
                    ],
                ],
            ],


    Создам нормальный лаяулт под Bootstrap 4 со всеми примерами и объяснениями, если данный ответ наберет лайки
    Ответ написан
    Комментировать
  • Как получить прямую ссылку для скачивания видеофайла vk?

    @rPman
    youtube-dl

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

    Lynn
    @Lynn
    nginx, js, css
    К счастью нельзя это обойти
    Ответ написан
    2 комментария
  • Почему сайт не взяли в AdSense?

    @sHARek
    Там https://101otzyv.ru/object/binance-birzha-kriptovaljut Аркадий пишет вам хорошее дело. По говорите с ним
    Ответ написан
    Комментировать
  • Как решить проблему с локалями в Debian?

    nightvich
    @nightvich
    ITman
    $ sudo locale-gen "en_US.UTF-8"
    Generating locales...
      en_US.UTF-8... done
    Generation complete.
    
    $ sudo dpkg-reconfigure locales
    Generating locales...
      en_US.UTF-8... up-to-date
    Generation complete.


    Самый полезный навык - наyчиться пользоваться Google.
    Ответ написан
    Комментировать
  • Эффект тепловизора javascript?

    @rPman
    Рисуешь на канвасе, на каждом onmousemoove прибавляешь к области в текущих координатах и ее окрестностях (размер рисующего круга) к интенсивности, причем чем дальше от центра, тем меньше прибавляешь, возможно для красоты использовать свою маску, небольшое изображение, определяющее твою кисть. Если мышка не двигается какое то время (setTimeout и сбрасывать счетчик на onmousemoove) то с некоторым шагом времени начинаешь вычитать из каждого пиксела интенсивность.

    Если под интенсивностью. и ее изменениями подразумевать и менять одновременно все три канала rgb, т.е. 0.0.0 - это 0, а 255,255,255 - 255 то у тебя будет чернобелый аналог того что на сайте.

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

    Чтобы туда сюда цвета не запрашивать с канваса, можно хранить интенсивность в отдельном массиве.

    p.s. если попиксельно будет медленно, ищи операции с изображениями в целом или даже webgl
    Ответ написан
    Комментировать
  • Почему рекомендуют вставлять иконки так?

    alphatom
    @alphatom
    Да в принципе нет никакой разницы. Если как img вставите то эту картинку можно будет мышкой захватить и она в верстке будет видна. Если через css в псевдоэлемент добавите то нельзя будет такую картинку мышкой перетаскивать и она коде страницы ее не будет (только в CSS).

    Часто иконки вставляют через специальные шрифты с иконками (например Bootstrap Icons), но тогда символы это не картинки а глифы шрифта. Те у вас в принципе нет опции вставить символ шрифта как картинку. Шрифты удобно потому что все иконки в одном файле находятся и так как это шрифт к ним можно применять свойства css для шрифтов. Те цвет, размер и тп. С картинками прийдется или грузить каждую отдельно или создавать из них атлас и потом все равно вставлять через css чтобы выставить на картинке позицию вашей иконки – что очень не удобно.

    В общем если у вас супер кастомные картинки которых мало можете вставлять их как img, Если это набор иконок в нете лучше использовать вставку через шрифт через псевжоэлемент.
    Ответ написан
    Комментировать
  • Как можно реализовать такое с Yandex Картами?

    Вы вообще пытались доки читать или не? Ёбаные миллинеалы…
    Ответ написан
    Комментировать
  • Существует ли уже платформа VR для windows для работы?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Да есть, например Virtual Desktop, только смысла от них пока мало, потому что разрешение vr-дисплеев не позволяет комфортно читать тексты. Подождите ещё пару лет.
    Ответ написан
    1 комментарий
  • Как отобразить подсказку сигнатуры метода в PHPStorm?

    @Quieteroks
    php программист
    Все очень просто, ctrl + q при выборе метода. Всплывает подсказка из доки.
    Переход к методу ctrl + click. Даже к библиотечному, они просто описаны в библиотеке самого phpstorm.
    Ну и когда вы ставите скобки, появляется список аргументов. Если вы вышли из списка, просто ставите запятую после последнего аргумента, ждете секунду и Вам вновь высвечивается подсказка по аргументам.
    Ответ написан
    Комментировать
  • Какая есть программа для визуальной работы с MySQL?

    Я остановился на нём dbForge Studio for MySQL.

    Достоинства:
    0. Быстро, удобно, красиво и стабильно
    1. Сравнение и синхронизация БД
    2. Дизайнер баз данных
    3. Визуальный дизайнер запросов
    4. Бесплатно для некоммерческого использования
    Ответ написан
    3 комментария
  • Как получить аудиозаписи пользователя на ВК?

    Ahen
    @Ahen
    Универсальный дилетант
    http://api.я.ws/ (0.01$ за 1000 запросов)
    Загружают песни к себе на сервер, отдают ссылку с лайфтаймом в сутки.

    Чтобы нивелировать рекламу (сервис не мой, но все же платный), вот мой ключ, только для личных нужд пользуйтесь, по совести:
    Ключ
    c7d840a0b022579793a667444c719778

    (На балансе около доллара, я его так и не смог потратить).
    Ответ написан
    1 комментарий
  • Эмуляция действий пользователя для парсера?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Ответ написан
    Комментировать