• Как выравнять все столбцы в таблице?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Подскажите, как можно исправить?

    1. Задавать столбцам фиксированную ширину
    или
    2. Использовать одну таблицу
    Ответ написан
  • Как хранить пользовательские настройки сайта?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли способ полностью локально хранить переменные в браузере без участия сервера?
    Есть - LocalStorage
    Ответ написан
    Комментировать
  • Как транслировать видеонаблюдение на сайт?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    На эту тему есть масса материала, например такого.
    Ответ написан
    Комментировать
  • Является ли программист творческой профессией?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Является ли программист творческой профессией?
    Программисты бывают разные и степень восприятия творчества. Точить гайки на заводе - тоже вполне себе творчество...

    Или в ней нужен математический склад ума?
    Как я уже говорил - программисты бывают разные, определённо есть такие, которым он не нужен. Хотя, в целом, любая машина, это прежде всего математика, я бы даже сказал, арифметика, которая лежит в основе любых вычислений, а машины - это прежде всего мощные вычислительные комплексы. Делайте выводу... К слову, при более глубоком подходе к вопросу "разработки" в целом, а не "абстрактного программирования", Вы сможете заметить, что в основе многих направлений - будет лежать очень много высшей математики.

    PS Если интересно мое мнение. То я думаю что программист это человек ни сколько с мат. складом ума сколько фантазией.
    Таких тоже хватает. Думается мне, что именно такие люди, "с фантазией", когда-то придумали JavaScript и InternetExplorer.

    Ведь если подумать даже простое сложение двух чисел можно решить не одним путем.
    Именно о них я говорил предложением выше.

    Но, подводя итоги, могу повториться, что программисты, как и дизайнеры-художники бывают разные. Например, есть художник который рисует гуашью натюрморты, а есть хужожник которые рисует наборы векторных иконок... и если первому из них, математика требуется весьма условно, то второй активно применяет не только математику, но ещё и геометрию и ряд прочих наук.
    Ответ написан
    Комментировать
  • Какие есть хорошие библиотеки для считывания текста?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Судя по ~2.3млн. загрузок и ~4.4к звёзд - вот хорошая библиотека для чтения офисных форматов и PDF. А ещё есть вот это. И ещё есть поиск на packagist.
    Ответ написан
    1 комментарий
  • Как работает технология dual lan в материнских платах?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как работает технология dual lan в материнских платах?
    Я думаю так же как две отдельный сетевые карты, подключенные к условной машине N.

    То есть в теории если я воткну два кабеля по 100 мб/сек будет 200?
    Порты на современных мат. платах обычно по 1ГБит, а не по 100Мбит, едвали какой-то провайдер в РФ (за редким исключением) даст Вам 1Гбит.

    То есть в теории если я воткну два кабеля по 100 мб/сек будет 200?
    В теории - да.

    Какие условия мне нужно соблюсти чтобы это заработало ?
    Иметь два кабеля и то, куда их воткнуть.

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

    Помню, одно время, в интернете проскакивали статьи на тему, что под линукс кто-то разрабатывает какую-то технологию по микшированию интернет-соединений, но, судя по тому, что в данный момент информация на эту тему крайне скудна - видимо из этой разработки ничего хорошего в итоге не получилось. Есть ли что-то подобное под Windows - сказать затрудняюсь, хотя маршрутизацию там настроить безусловно можно, но опять таки, не уверен, что эта настройки дадут Вам желаемые результаты. По умолчанию, насколько я помню, в Windows приложение будет использовать последнее установленное соединение, на момент его запуска и/или попытки соединения с конечным узлом.

    UPD. Балансировка каналов работать конечно будет, но её работа в целом будет далека от Ваших ожиданий, к тому же, основной упор в данном случае будет на исходящий трафик, которого у рядового пользователя в десятки и сотни раз меньше, чем входящего и балансировать его (исходящий трафик) обычно смысла нет... а вот входящий трафик, в данной задаче, хорошо "отбалансировать" можно только на уровне "лабораторных условий" и прирост производительности хоть и будет, но не слишком значительный в большинстве случаев.
    Ответ написан
    3 комментария
  • Отдельная папка в Controllers для каждой роли?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Нормально ли для каждой роли делать отдельную папку в Controllers и почти дублировать все контроллеры, чуть их модифицируя?
    Нет. Если даже отбросить все прочие "но", представьте, чего Вам будет стоить ввести новую роль в систему?! Это же будет полный ахтунг!

    Также получается и роуты дублируются... и виды.
    Тем более.

    Есть просто мысль, что я много кода дублирую, нормально ли это?
    Нет, не нормально. Честно говоря, я не понимаю, как Вы смогли изучить Laravel, при этом обойдя вниманием один из основополагающих принципов разработки DRY.

    Для ролей и разрешений использую "laravel spatie permission".
    Честно говоря, не знаю что это, но если текущий модуль обслуживания прав/привилегий/ролей/управления доступом (и т.п.) - Вас чем-то не устраивает или заставляет(?) Вас нарушать основополагающие принципы разработки - нужно просто найти другой, более подходящий под Ваши конкретные задачи.
    Ответ написан
    4 комментария
  • Что почитать о продвинутой разработке web приложений?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    1. Приложение должно работать 24/7 с возможностью остановить и запустить процесс заново.
    Приложения на PHP, по умолчанию работают "24/7", но если Вы хотите, что бы процесс PHP постоянно висел в памяти - лучше обратить внимание на другой язык/стек, например C# + .NET или GO, они работают по принципу "процесс постоянно сидит в памяти", если для Вас это принципиально, т.к. у PHP несколько другая архитектура и, запустить ПХП-скрипт в циклическом режиме хоть и ничего не мешает, но я бы так делать не стал (по принципу "колоть орехи монитором - тоже ничего не мешает").

    2. Связь фронтенда и бэкэнда реализована с помощью jQuery запросов к PHP - что мне кажется далеко не самым оптимальным вариантом.
    Клиент-серверный обмен данными на уровне REST-API - вполне себе оптимален и достаточно часто применяется, если Вы об этом...

    Не хочу учить по книжкам, сразу пытаюсь решать реальные задачи. Если то в языке не пойму - смогу загуглить.
    Это Вы зря... Для начала, я бы всё-таки рекомендовал Вам книжку за авторством Котерова "PHP 7". Отличная книга "начального уровня". Если осилите её целиком - это будет неплохой старт.

    P.S.
    Знаю/понимаю фронтенд. В бэкэнде (на PHP) могу решить 90% задач, которые должно делать приложение.
    Мне нравится Ваш оптимизм :)))

    Эпилог:
    jQuery постепенно уходит в историю, если хотите "знать фронтэд", на сегодняшний день - нужно знать хотя бы 1 из популярных ЖС-фреймворков, сейчас очень активно применяются (примерно в равной степени) VueJS и ReactJS, рекомендую Вам изучить хотя бы один из них, помимо прочего...
    Ответ написан
    9 комментариев
  • Лучший интернет провайдер для сэлф-хостинга?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Единственная проблема в том то что мой провайдер (Ростелеком) имеет что-то вроде хабов которые делают так что проброс портов невозможен.
    Впервые слышу о "хабах" из-за которых невозможна маршрутизация... Ну да ладно.

    Для этих целей Вам подойдёт примерно любой провайдер, который способен обеспечить нужный Вам уровень стабильности соединения и предоставляющий услугу "белый IP". Под "стабильностью соединения" я подразумеваю отсутствие обрывов, отсутствие проблем с сетью во время плохих погодных условий, различные "аварии" и все прочие факторы из-за которых интернет соединение с интернетом может быть временно неработоспособным.

    Из личного опыта могу сказать, что даже в рамках одного квартала разные провайдеры могут иметь очень разный уровень качества. Например, у моего товарища который живёт через 3 дома от меня - постоянно что-то случается со свичём (то он горит, то его затопило от дождя то ещё что-то...), от которого идёт конечная разводка, у меня же интернет в среднем не работает менее 1 суток в год, у обоих одинаковый провайдер.

    P.S. Так же хочу обратить Ваше внимание, что никакой серьёзный проект на "селф-хостинге" не выживет. Так как у себя дома, вероятность того, что Вы сможете обеспечить должны уровень обслуживания серверов, не говоря уже про связь. Причём во всех смыслах, от потенциальной опасности того, что кто-то просто срежет кусок провода идущий к Вам заканчивая температурными режимами и уровнем влажности для серверов. Так же, очень мало вероятно, что любой "домашний" провайдер выдаст Вам более 1 "белого" IP-адреса, что так же в последствии может стать проблемой. А так же есть ряд потенциальных проблем юридического характера, которые Вам, не будучи официальным хостером - решать будет крайне затруднительно.

    Если Вам очень хочется именно "свой" сервер - купите б/у сервак на барахолке (коих к счастью много), воткните туда "свежие" диски и арендуйте в ближайшем офисе Вашего провайдера часть стойки и порт, для размещения там собственных серверов. Услуга называется "colocation". Это будет много надёжнее.
    Ответ написан
    2 комментария
  • Как бесконечно повторить n-итерацию цикла?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Альтернативный вариант:

    <?php
    
    $x = 10;
    for($i = 0; $i < 100; $i++) {    
        if($x > 0) {
            $i--;
            $x--;
            echo "X: {$x}<br/>";
            // continue;
        }
    
        echo "I: {$i}<br/>";
    }


    Формально, такой вариант будет повторять именно ту итерацию. Но вариант с while'ом (указанный выше) мне нравится больше.
    Ответ написан
    Комментировать
  • Массив строкой в БД это плохо?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Что если вместо дополнительной таблицы хранить в БД список этих изображений одной строкой, а в приложении "разбивать" её split'ом?
    Если у Вас MySQL - там есть поддержка данных типа JSON, который идеально подойдёт для таких целей.

    Насколько это удачное решение или лучше так не делать?
    Ну как минимум это решение имеет право на жизнь, если Вы не планируете обрабатывать эти данные отдельно (например осуществлять по ним поиск). Но его смысл - лично мне не понятен.

    PS: я знаю, что у postgres есть тип array
    А ещё у PostgreSQL есть тип JSONB, который позволяет полноценно индексировать поля в формате JSON... Но смысла в таком решении я всё равно особого не вижу, скорее даже наоборот.
    Ответ написан
  • Как получить данные по api?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    В том смысле, что может они в какой то глобальный массив записываются, и я могу попробовать их оттуда получить?
    Не исключено. В первую очередь следует обратить внимание на массивы $_GET и $_POST.
    Ответ написан
    Комментировать
  • Как сделать на чистом css, когда в родительском пункте есть разделы, то через before показать стрелочку?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Если я правильно понимаю Ваш вопрос, то либо через селектор :has(), который пока из черновиков не вышел. Либо рисуйте эту самую стрелочку у первого пункта, который "есть" (а если его нет, то и стрелочки соотв. не будет). Либо через известное место... Но последнее я бы не рекомендовал.
    Ответ написан
  • В HTML коде динамической страницы два тега Canonical. Правильно ли это? Какой тег будет приоритетным?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    На странице где имеются два тега "canonical" какой из этих двух тегов в приоритете, верхний или нижний?
    и правильно ли вообще, когда на странице два тега canonical
    По логике HTML'a приоритетным будет тот тег, который объявлен последним (он должен переопределить все предыдущие). Но, так как эти теги предназначены в первую очередь для ботов - есть мнение, что разные боты могут вести себя по разному, в первую очередь по тому, что по правилам (если память мне не изменяет) - "rel canonical" указывается именно в <head/>, по этому есть подозрение, что боты в каких-то случаях могу проигнорировать "нижний" тег, а в каких-то проигнорировать то, что тег нарушает правила и переопределить значение...

    "Совсем точно", я думаю мы сможем уточнить либо у поддержки каждого отдельно взятого поисковика (или автора бота), либо "методом научного тыка" (то есть уже по факту).

    UPD. P.S. Я видимо плохо смотрел, в первый раз... Если у Вас оба тега указаны тега указаны внутри <head/>, с большей вероятностью (по правилам HTML) отработает второй.
    Ответ написан
    6 комментариев
  • Как оптимально сделать выборку разрешенных данных для юзера?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Мне кажется Вы либо как-то слишком перемудрили с логикой, либо подошли к вопросу не с той стороны. К тому же, Вы не указали, касательно какой конкретной БД этот вопрос.

    Например, в MySQL'е (в данный момент проверят на MariaDB, но думаю оригинальный MySQL работает так же), если нужно ограничить доступы - это можно сделать на уровне пользователей самой БД, причём выставить отдельные ограничения на каждые: Базу -> таблицу -> отдельную колонку.

    Если же Вам нужно ещё жестче ограничить данные - я бы рекомендовал добавлять данные о доступах к самим данным непосредственно.

    Например, если бы мы использовали PostgreSQL: в таблицу "news", к каждой новости я бы добавлял список пользователей, которые могут читать конкретно эту новость, в отдельную колонку типа "массив" со списком ID пользователей, что бы иметь возможность делать такую выборку на уровне "чистых запросов" или просто воспользовался бы механизмом row level security (пока не приходилось пользоваться таким, но думаю это как раз то, о чём Вы говорите).

    А если MySQL: создал бы для каждой такой таблицы создал бы таблицу-спутник в которой были бы прописаны права на каждую отдельную запись, по такому же принципу, как описано выше. Или попробовал бы реализовать аналогичную схему (как описал в варианте для PosgtreSQL), только роль поля-массива выполняло бы JSON-поле (насколько это сработало бы и насколько бы оно работало быстро, если заработало бы - точно сказать не могу, в MySQL я так делать ещё не пробовал, но в теории так сделать можно).

    В Вашем варианте мне решительно не нравится то, что Вы храните имена таблиц в другой таблице. Таким образом, эти имена с большей вероятностью невозможно будет использовать внутри SQL-запроса, что в свою очередь создаёт серьёзную специфику при работе с такой БД, которую я бы настоятельно рекомендовал избегать, в частности что бы гарантировать корректность прав между запросами - нужно будет каждый запрос на SELECT оборачивать в транзакцию, как минимум...

    P.S. Ещё вот тут описывают некоторую реализацию row level security для MySQL'а.
    Ответ написан
    1 комментарий
  • Как подписать запрос SSL сертификатом с удаленного ресурса?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Есть подозрение, что параметр/аргумент cert который вы указываете - должен принимать путь до сертификата, а Вы передаёте ему содержимое сертификата, а не путь. Решений тут на вскидку несколько:
    1. Найдите HTTP-клиент (или параметр у текущего клиента) который позволяет указывать содержимое сертификата
    2. Скачивайте сертификат на сервер, указывайте путь до него и удаляйте, после выполнения запроса сертификат (если в этом есть необходимость)
    3. Аналогичным образом Вы можете сохранить его в БД, доставать оттуда и сохранять временно при каждом запросе
    4. Можете попробовать переписать сам клиент таким образом, что бы он принимал на вход не путь, а сразу содержимое сертификата (я думаю, это будет не очень сложно)
    Ответ написан
    1 комментарий
  • Как сделать графическую оболочку для консольного приложения?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как можно запустить консольное приложение из другого оконного приложения, посылать ему команды и читать его ответы?

    1. С помощью стандартного ввода-вывода
    2. Обмениваться данными можно с помощью стандартных сокетов или с помощью unix-сокетов (если это *nix система)
    3. Можно использовать костыли в виде сервера очередей, базы даных, или какого-нибудь кэширующего хранилища типа Memcached
    Ответ написан
    2 комментария
  • Какой стек технологий лучше применить?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Клиент хочет это видеть на вп, но что-то мне кажется
    Мне тоже так кажется.

    Может ли вп такое потянуть ?
    При должном желании - думаю на ВП можно сделать всё что угодно.

    Может ли бд такое тянуть и тд?
    Если альтернативы "ВП" в контексте данного вопроса я могу себе представить, то альтернативы БД - вряд ли...

    Подскажите , какой стек больше подойдёт под эти запросы ?
    Любой, на котором Вы (или кто-то иной) сможет реализовать выше озвученное, "ВП" в целом исключением из этого списка не является. Тут вопрос скорее целесообразности, а не возможности как таковой. Более ли менее серьёзные проекты я бы делал на каком-нибудь фреймворке (на Python'е или на PHP).
    Ответ написан
    Комментировать
  • Как менять аватарку на своем сайте?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    При обновлении странички, проблема не пропадает.
    Судя по описанию, это связано с тем, что картинка кэшируется в браузере. Решить это можно например так: <img src="image1.png?<?php echo time(); ?>" /> Это пожалуй самый просто вариант (менять путь, что бы он не кэшировался).

    Кэш в браузере так же обычно сбрасывается с помощью нажатия пару раз на Ctrl+R или Ctrl+F5.

    Ещё можно в на http-сервере настроить заголовок, что бы конкретно эта картинка не кэшировалась... Ещё картинку можно отдавать с помощью PHP и скриптом контроллировать заголовки отвечающие за кэширование...
    Ответ написан
    9 комментариев
  • Какие особенности верстки под iPhone и как можно тестировать без данной техники?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Какие особенности верстки под iPhone и как можно тестировать без данной техники?
    Особенности вёрстки в рамках статьи или тем более ответа - Вы вряд ли сможете найти, по причине большой обширности данного материала и сложности его изложения, особенно с учётом того, что разные устройства/браузеры могут давать различные "артефакты" (назовём это так).

    Лучший вариант - это либо обзавестись нужной техникой, либо использовать специализированные сервисы, типа такого. Последний вариант в целом более предпочтительнее, так как позволяет протестировать Ваш проект на куда большем кол-ве устройств, чем большинство может себе позволить иметь в наличии (даже чисто физически). Некоторые подобные сервисы предоставляют некий лимит бесплатного использования (по крайней мере так было раньше), если не хотите платить за них - можно поискать бесплатные варианты.

    Ну и конечно, не забывайте предварительно тестировать Вашу вёрстку в "мобильном" режиме Хрома (о собственно писали выше).
    Ответ написан
    4 комментария