Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
kocherman

kocherman

  • 112
    вклад
  • 18
    вопросов
  • 209
    ответов
  • 28%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как отменить заморозку фоновых вкладок Google Chrome?

    kocherman
    kocherman @kocherman
    Нажмите правой кнопкой мыши по заголовку вкладки. Пункт меню Pin или Закрепить вкладку (что-то вроде того). Вкладка переместится в левый угол браузера и закреплена как постоянная. Такие вкладки у меня не морозятся. Хотя, может зависеть и от других факторов.
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Какой чат лучше для веб-сайта?

    kocherman
    kocherman @kocherman
    https://nextcloud.com/ - расшариватель файлов, закладок, контактов и прочих ресурсов.
    Есть звонки, есть богатое API для плагинов. И собственно вагон этих плагинов, разбитый по категориям https://apps.nextcloud.com/.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как скрыть айпишник хоста или сервера на котором стоит сайт?

    kocherman
    kocherman @kocherman
    Это можно сделать через Tor
    Ответ написан более года назад
    5 комментариев
    5 комментариев
  • Как удалить из объекта ненужные ключи?

    kocherman
    kocherman @kocherman
    const obj1 = {152: true, 153: true, 154: true}; 
    const obj2 = {152: true, 153: true, 154: true, 2553: true, 2554: true, 2555: true};
    const obj1keys= [...Object.keys(obj1)];
    const obj2keys = [...Object.keys(obj2)];
    const obj2keyFilter = obj2keys.filter(key=>obj1keys.includes(key));
    obj2keyFilter.forEach(key => delete obj2[key]);
    console.log(obj2);
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Imac 6.1 m1200 нужен совет?

    kocherman
    kocherman @kocherman
    Работал я за таким.
    При покупке ОС была - OS X Tiger - 10.4
    Дрова присутствуют во всех версиях, ОС полностью готова после установки.
    Вам же советую поставить OS X Snow Leopard - 10.6.
    У снежного барса не такие конские требования как у льва 10.7.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Какое есть легкое, простое и Open source решение для записи рабочего стола Windows?

    kocherman
    kocherman @kocherman
    Попробуйте OBS-Studio текущая версия v26.0.0-rc3
    OBSDemoApp2504.png
    Ответ написан более года назад
    3 комментария
    3 комментария
  • Рекурсивный поиск в массиве объектов?

    kocherman
    kocherman @kocherman
    Держите
    https://jsfiddle.net/7w13bvhg/
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Как масштабировать SVG текст в зависимости от размера контейнера?

    kocherman
    kocherman @kocherman
    Можно например вот так:
    https://jsfiddle.net/y50ko94r/
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Treeview c chebox c и drag and drop на JS?

    kocherman
    kocherman @kocherman
    Готовое решение - https://docs.sencha.com/extjs/4.2.2/#!/example/build/KitchenSink/ext-theme-neptune/#check-tree Сылка режется хабрапарсером (копируй вручную).

    Версия библиотеки старая, 8+ лет. Но пример есть. Drag-n-drop полностью спрограммирован, но в этом примере не подключен, пощелкаете другие - найдете как подключается dragndrop. Правда, некоторые примеры у них отвалились из-за серверной части скриптов. (ну больше 8 лет версии, не следят за всеми). Вы можете попробовать последние версии Extjs. Но, пример такой только в этой версии.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как исправить ошибку page is not defined?

    kocherman
    kocherman @kocherman
    есть же толковый цикл for..of
    for ( let item of resultArr ){
      //...
    }

    или
    for ( let [index,item] of [...resultArr].entries() ){
      //...
    }

    откуда мода на этот forEach()??
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как сделать простой websocet сервер на PHP для хостинга?

    kocherman
    kocherman @kocherman
    Гуголь придумали дураки.
    https://phppot.com/php/simple-php-chat-using-websocket/
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Сайты с SSL и без на одном сервере - возможно?

    kocherman
    kocherman @kocherman
    Нужен общий SSL-сертификат.

    Почему нужен один сертификат на все сайты?

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

    А вот заголовки запроса получит Nginx уже по защищенному соединению, поменять сертификат будет поздно. Но Nginx таки получит нужный домен в заголовках.

    Конфиг рабочий

    # Sets worker processes across CPUs (4 processors each w/ 4 cores totaling 16 cores)
    # Usually 2 processes per core will suffice, as most operating systems at this time only utilize 2 cores per processor.
    worker_processes  8;
    
    pid /usr/local/nginx/logs/nginxlocal.pid;
    
    # events module is used to define network-related directives, many of which are for performance
    events {
        # number of connections per worker process. 1024 represents 1 core. 4096
        # would take advantage of up to 4 cores. The simultaneous connections to be
        # served could be as high as 16,384.
    
        worker_connections  4096;
    
        #scales the server to reduce spawning threads while synchronizing requests across limited available threads.
        use epoll;
    }
    
    #http block. Only one block allowed per conf. file
    http {
    
    #Uses the IP-to-location database downloaded from Maxmind
    #This module is configured to only allow traffic from the US
        geoip_country /usr/share/GeoIP/GeoIP.dat;
        map $geoip_country_code $allowed_country {
            default no;
            US yes;
    
        }
    
       #global to all server blocks
       #==========================================================================
    
               # Set log paths
               #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                error_log  /usr/local/nginx/logs/accesslocal.log;
                access_log  /usr/local/nginx/logs/errorlocal.log;
    
               # Set data/file types
               #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                include       mime.types;
                default_type  application/octet-stream;
                sendfile        on;
                keepalive_timeout  65;
    
               # Set proxy specifics and set variables (i.e., remote IP address)
               #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                proxy_redirect     off;
    
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_max_temp_file_size 0;
    
                client_max_body_size       10m;
                client_body_buffer_size    128k;
    
                proxy_connect_timeout      90;
                proxy_send_timeout         90;
                proxy_read_timeout         90;
    
                proxy_buffer_size          4k;
                proxy_buffers              4 32k;
                proxy_busy_buffers_size    64k;
                proxy_temp_file_write_size 64k;
    
               # Set SSL specifics
               #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                ssl_session_timeout  5m;
    
                ssl_protocols  TLSv1; #required by SNI
                ssl_ciphers  HIGH:!aNULL:!MD5;
                ssl_prefer_server_ciphers   on;
    
                ssl                  on;
    
    
        # HTTPS server www.yourfirstdomain.com port 8080
        #------------------------------------------------------------------------
        server {
    
            listen       10.1.10.136:443 ssl;
            server_name  test.example.com;
    
        #Set up your cert paths
            ssl_certificate_key  /etc/httpd/ssl/apache/star_example_com.key;
            ssl_certificate   /etc/httpd/ssl/apache/star_example_com.crt;
    
        #Prevent any access other than to the path specified below
           location / {
                 deny all;
            }
    
            location /testing {
    
            if ($allowed_country = yes) {
                          proxy_pass   https://127.0.0.1:8080;
            }
            }
    
        }
    
    
        # HTTPS server test2.example.com port 8447
        #------------------------------------------------------------------------
        server {
            listen       10.1.10.136:443 ssl;
            server_name  test2.example.com;
    
            ssl_certificate      /etc/httpd/ssl/apache/star_example_com.crt;
            ssl_certificate_key  /etc/httpd/ssl/apache/star_example_com.key;
    
           location / {
                 deny all;
            }
    
            location /testing {
    
    
                if ($allowed_country = yes) {
                       proxy_pass         https://127.0.0.1:8447;
                 }
    
            }
    
        }
    
    }
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Как php image оставить только 2 цвета.?Белый и черный?

    kocherman
    kocherman @kocherman
    Этот процесс называется квантизацией

    function quantizeImage($imagePath, $numberColors, $colorSpace, $treeDepth, $dither)
    {
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->quantizeImage($numberColors, $colorSpace, $treeDepth, $dither, false);
        $imagick->setImageFormat('png');
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }
    Ответ написан более года назад
  • Как писать хороший и расширяемый css код?

    kocherman
    kocherman @kocherman
    Здесь ты найдешь про CSS всё. А вот прочитать сможешь, если знаешь английский.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как превратить белый фон в прозрачный у JPEG-картинки на сайте?

    kocherman
    kocherman @kocherman
    Команда должна работать на всех операционных системах. Требует установленный ImageMagick. Можно переделать в функции PHP, но мне лень.
    convert source.jpg -fill none -fuzz 1% -draw 'matte 0,0 floodfill' -flop  -draw 'matte 0,0 floodfill' -flop dest.png

    Фон берётся из пикселя [0,0], нахлест (fuzz) 1%.
    Как применить команду в цикле пакетно?
    Например так:
    echo 'convert $1 -fill none -fuzz 1% -draw "matte 0,0 floodfill" -flop  -draw "matte 0,0 floodfill" -flop ${1%.*}.png' > ~/convert.sh
    chmod +x ~/convert.sh
    cd ~/Pictures
    find -name '*.jpg' | xargs -L1 -P8 ~/convert.sh
    rm ~/convert.sh

    Скрипт уберет фон у всех картинок *.jpg в папке $HOME/Pictures в 8 потоков.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Разумно ли использовать return в try-catch?

    kocherman
    kocherman @kocherman
    Не, так делать не комильфо.

    Изучите работу вот такого кода:
    function foo (x, y) {
      try { 
        const res = x == y;
        if(!res){
          throw "res is false";
        }
        console.log('result:',res);
        return res;
      } catch(err) {
        console.error('error:',err);
        return err;
      }
      finally{
        console.log('this code will be executed at all time');
        return "haha";
      }
      console.log('that will never executed')
    }
    
    console.log( 'return1: ',  foo( 4, 4 ) );
    console.log( 'return2: ', foo( 10 / 3 / 4 / 5, 10 / 5 / 4 / 3 ) );
    Ответ написан более года назад
    4 комментария
    4 комментария
  • Можно ли отменить распространение свойства overflow: hidden; на потомков?

    kocherman
    kocherman @kocherman
    Как вариант.
    Можно вместо
    #element { 
        overflow: hidden;
    }

    писать вот это
    #element::-webkit-scrollbar { 
        display: none; 
    }
    Ответ написан более года назад
    8 комментариев
    8 комментариев
  • Как как разобраться с видео-стримингом?

    kocherman
    kocherman @kocherman
    Да. Гуглить вы конечно совсем разучились:
    MediaStream Recording API.
    Media Capture and Streams API (Media Stream).
    WebRTC API.
    WebAudio API.
    Media.
    Там есть и на русском, но перевод не завершен, так что читайте на английском.
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Как сверстать модальное окно с блоками внутри?

    kocherman
    kocherman @kocherman
    А что там сложного?
    https://jsfiddle.net/xf4g8tke/
    Про диалоги читай тут
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Android\Ios Приложение для классификации и распознавания текста на картинках?

    kocherman
    kocherman @kocherman
    opencv распознает предметы на фото с разной вероятностью, но каталогизировать фото и да еще и как приложение для Android/ios - это походу перебор, вам не кажется?

    На пндройд есть опенсурсное Character-recognition.
    Ответ написан более года назад
    3 комментария
    3 комментария
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • foxyhunt
    • 15 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 7 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 0 вопросов
  • gogowq
    gogowq
    • 4 ответа
    • 2 вопроса
  • DF0rig
    • 5 ответов
    • 1 вопрос
  • DR01D0
    • 3 ответа
    • 2 вопроса
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации