Обновить
3

Пользователь технологий

1
Подписчики
Отправить сообщение
Полностью согласен. Думать головой надо всегда
То есть чисто «политическо-экономический» результат, а не эксплуатационный выходит.
Да, выше написали. Пора снова изучать нормативы. Дома все равно буду ставить медь, с ней удобней работать
то вполне можно сделать скрутку алюминиевого провода с медным, если с умом конечно делать

Современные нормы прямо запрещают использовать алюминиевые провода в жилых помещениях. Все равно, надо стараться не использовать алюминиевые провода, по возможности, конечно.

Правда снова разрешили прокладывать алюминиевые провода в жилых домах

Разве? Надо почитать будет…
Два оффера в гугл этому Господину. Ресурсов много не бывает, согласен.
К тому же, саму Postgres много российский разрабов пилит почти с начала. Олег Бартунов на какой-то конфе рассказывал, почему они считают pgsql российской
Зачем вообще xml?

В налоговой например. А также XLST, XSD и т.д. и т.п.
Поиск по xml — такое себе, как и просмотр или обработку.

Поиск по html — такое себе, как и просмотр или обработку. В чем разница?
В 100 символов не помещаются
Бонус! Примеры без использования Lua вообще

Какие-то каличные примеры. Приведу своих. Они может и не идеальны, но работают исправно без лишней нагрузки на мозг.
1) Раздача файлов через nginx с проверкой на доступ к загрузке, авторизация или еще что (auth_request)
nginx
server {
    root /var/www/example.com;
    location ~ \.(zip|png)$ {
        auth_request /auth;
        add_header Cache-Control no-cache;
    }

    location = /auth {
        internal;
        proxy_pass https://example.com/check_auth;
        proxy_set_header X-Original-URI $request_uri;
        proxy_pass_request_body off;
        proxy_set_header Content-Length "";
    }
}


php
function user_check_auth()
{
    if (is_granted())
    {
        header('HTTP/1.1 200 OK');
        header('Status: 200 OK');
    } else {
        header('HTTP/1.1 403 Forbidden');
        header('Status: 403 Forbidden');
    }
    exit;
}



2) Подсчет кол-ва загрузок (X-Accel-Redirect)
nginx
server{
    root /var/www/example.com;
    set $counter /var/www/files/src/counter.php;

    location ~ ^/files/(?<g1>.*\.zip)$ {
        fastcgi_pass unix:/usr/local/var/run/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $counter;
        include fastcgi_params;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        fastcgi_param REQUEST_URI /$g1;
        fastcgi_param X-File-Type arch_zip;
        set $_uri /$g1;
    }

    location @counter {
        root /var/www/upload.example.com;
        try_files $_uri =404;
    }

    location / {
        try_files $uri $uri/ =404;
    }
}


php
// /var/www/files/src/counter.php
<?php

header('X-Accel-Redirect: @counter');
header('Content-Type: application/octet-stream');

use Symfony\Component\Console\Input\ArrayInput;

if (!empty($_SERVER['REQUEST_URI']) && !empty($_SERVER['X-File-Type'])) {
    $filename = parse_url(htmlspecialchars(basename($_SERVER['REQUEST_URI'])), PHP_URL_PATH);
    $fileType = htmlspecialchars($_SERVER['X-File-Type']);
    require_once __DIR__ . '/../vendor/autoload.php';

    set_time_limit(10);
    $input = new ArrayInput([
        'counter:tick',
        'filename' => $filename,
        'type' => $fileType,
    ]);
    $app = require __DIR__ . '/app.php';
    require __DIR__ . '/../config/prod.php';

    /* @var \Symfony\Component\Console\Application $console */
    $console = require __DIR__ . '/console.php';
    try {
        $console->run($input);
    } catch (\Exception $exception) {
        return;
    }
}

// /var/www/files/src/console.php
<?php
// ...
$console->register('counter:tick')
    ->setDescription('Counter for download files')
    ->setDefinition([
        new InputArgument('filename', InputArgument::REQUIRED, 'File name'),
        new InputArgument('type', InputArgument::REQUIRED, 'File Type')
    ])
    ->setCode(function (InputInterface $input) use ($app) {
        $filename = $input->getArgument('filename');
        $fileType = $input->getArgument('type');
    
        /* @var \Uploader\Entity\FileType $type */
        $type = $app['repository.file_type']->findByType($fileType);
        if (!$type) {
            return;
        }
        
        /* @var \Uploader\Entity\File $file */
        $file = $app['repository.file']->findByTypeAndName($type->getType(), $filename);
        if (!$file) {
            return;
        }
        
        $file->incDownloadCount();
        $app['repository.file']->save($file);
    });

Чтобы при прямой спине не задирать голову. А так она чуть вниз наклонена и по идее шея не должна сильно напрягаться.
Вот это для меню было сюрпризом.
В наличии два моника AOC: E2275PWJ 21.5" и i2269Vwm 21.5". На обеих яркость в 10% и на последнем тест карандашом показывает мерцание. Долго не мог понять что не так с ним, а оно вон как.
Почему бы именно ее в статью и не вставить, непонятно.
Вроде та самая, которую сфотографировали

Действительно, проглядел. Посыпаю голову пеплом.
Использую HTTPS Everywhere уже около двух лет. Он переключает на https, только если сайт доступен на https, если нет, то сайт вполне себе спокойно работает по http. Проверено на своем репозитории. Есть проблема с кешем редиеректа самого браузера. Если репа на поддомене, то зайдя на основной сайт, поддомен тоже будет пытаться редиректнуть на https из-за чего ошибка сертификата.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность