Обновить
3
0

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

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

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

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

Разве? Надо почитать будет…
Два оффера в гугл этому Господину. Ресурсов много не бывает, согласен.
К тому же, саму 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% и на последнем тест карандашом показывает мерцание. Долго не мог понять что не так с ним, а оно вон как.
Почему бы именно ее в статью и не вставить, непонятно.
Вроде та самая, которую сфотографировали

Действительно, проглядел. Посыпаю голову пеплом.

Информация

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