• Как реализовать такое меню?

    DcFanoiD
    @DcFanoiD
    Full Stack : web
    Например с помощью writing-mode: vertical-lr и transform
    Ответ написан
    1 комментарий
  • Как реализовать такую сетку с помощью flex?

    origami1024
    @origami1024
    went out for a night walk


    1. item4 задается высота 200%
    2. item5 margin справа ~33%
    Ответ написан
    2 комментария
  • Как не проводить деньги через счет своей организации?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Каждый партнер регистрирует на себя платежную систему.
    В зависимости от партнера подставляете разные id/secretы/логины при оплате/генерации подписей и т.п.
    Колбеки-вебхуки от платежной системы приходят на условно уникальные url где мы тоже уже понимаем что платеж к какому-то конкретному партнеру поступил.

    Технически никаких проблем в этом нет в общем. Из ограничений только ваша фантазия.

    Только никто не захочет ничего не себя регистрировать и/или давать вам доступы, но это уже другая история xD
    Ответ написан
    3 комментария
  • Tor как прокси?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Есть 2 варианта использования сети Tor, оба заключаются в использовании авторизации.
    1. Использование связки случайный_пользователь:пароль. В таком случае при авторизации для каждого пользователя выдаётся новый IP-адрес. Т.е. при каждом requests запросе ты будешь получать новый IP.
    proxy_auth = str(random.randint(10000, 2147483647)) + ':' + 'passwrd'
    proxies = {'http': 'socks5h://{}@localhost:9050'.format(proxy_auth), 'https': 'socks5h://{}@localhost:9050'.format(proxy_auth)}
    response = requests.get(url, proxies=proxies)

    2. Использование пользователь:случайный_пароль. В таком случае ты сможешь создавать для "пользователя" IP и использовать этот IP-адрес повторно.
    proxy_auth = 'user' + ':' + str(random.randint(10000, 2147483647))
    Ответ написан
    11 комментариев
  • Можно ли сделать такую выборку?

    Gomonov
    @Gomonov
    Select * from table where count > 0 and date >= (Select date from table where count = 0 order by date desc limit 1)
    Ответ написан
    Комментировать
  • Можно ли сделать такую выборку?

    @Bonce
    Да, можем.
    Для этого необходимо найти самый поздний нуль и выбрать все единицы позднее нуля.
    Т.е.
    SELECT * FROM table_name
    WHERE date_column > (SELECT MAX(date_column) FROM table_name WHERE counter = 0)
    Ответ написан
    3 комментария
  • Как правильно запустить Selenium на VPS?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Selenium запущен без монитора - браузер не может запуститься и получается вот такая ошибка.

    Чтобы запускать полноценные браузеры на VPS можно использовать xvfb-run. Как пример запуска:

    DISPLAY=:99 xvfb-run -a -n 1 -l -s "-screen 0, 1024x768x8" java -jar /usr/local/bin/selenium-server


    Подробнее расказывать вот эта статья:

    ermin.ru/post/19
    Ответ написан
    6 комментариев
  • Как получить значение у только видимых полей?

    @Narts
    Если у поля нету атрибута name, то он не попадает в serialize()
    Можно этим воспользоваться

    Или же
    var data  = $('#form :input:not(:hidden)').serialize();
    Ответ написан
    Комментировать
  • Прилетает post запрос, как прочитать тело?

    New_Horizons
    @New_Horizons
    Бред:
    var_dump(php://input);

    А лучше ещё и $_POST тоже проверять, т.к.:

    php://input недоступен с типом содержимого enctype="multipart/form-data".
    Ответ написан
    5 комментариев
  • Как правильно составить условие для rewritecond?

    shambler81
    @shambler81 Куратор тега htaccess
    Вообще правильно наоборот добавлять слеш, однако надо не забывать что есть места исключения когда его нужно убирать.
    В общем кидаю тебе правило уже расписаное
    ! - отрицание остальное там прокоментированно.
    Уж из этого сможешь переработать под себя
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteRule .* /$0 [R=301,L]
       # Исключаем все лишние слеши.
    
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
    ############################################################################
    RewriteCond %{REQUEST_URI} \..+$
       # Если файл содержит точку.
    RewriteCond %{REQUEST_FILENAME} !-d
       # И это не директория.
    RewriteCond %{REQUEST_FILENAME} -f
       # Является файлом.
    RewriteCond %{REQUEST_URI} ^(.+)/$
       # И в конце URL есть слеш.
    RewriteRule ^(.+)/$ /$1 [R=301,L]
       # Исключить слеш.
    
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.
    
    ############################################################################
    #### Убираем index.php, если он есть в конце URL                        ####
    ############################################################################
    RewriteCond %{REQUEST_METHOD} =GET
       # Выявляем GET запрос в URL (не POST).
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
       # URL cодержит index.php в конце.
    RewriteRule ^(.*)$ %1/ [R=301,L]
       # Удалить index.php из URL.
    Ответ написан
    7 комментариев
  • Как с помощью класса для PDO получить результат update?

    FanatPHP
    @FanatPHP
    Помогаю и новичкам, и старичкам
    Хороший вопрос.
    И класс в целом очень неплох, сильно лучше тех, что обычно пишут "когда учатся".

    А ответ на вопрос простой но неожиданный - никак.
    Результат запроса update тебе не нужен.

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

    Если же говорить о количестве строк, которые затронул запрос, то, поскольку у тебя абстракция не течет, то вместо метода sql(), который тупо дублирует run(), я бы сдела метод dml()

    public static function dml($query, $args = []) {
        $stmt = self::run($query, $args);
        return $stmt->rowCount();
      }

    и применял ее только для запросов, модифицирующих данные (DML).
    Ответ написан
    1 комментарий
  • Как реализовать подгрузку новых данных из БД с помощью Ajax?

    DevMan
    @DevMan Куратор тега PHP
    обычно выборка привязана не к айди, а к текущему времени. это время уже известно при начальной выборке. нужно лишь его сохранить (хоть в сессию, хоть в печеньки, хоть в жс-переменную) и запрашивать материалы с датой от сохранённой до текущей (и обновлять сохранённую).

    если речь о офсете/ленивой загрузке, то принцип такой же: сохраняем текущий офсет -> при следующем вызове достаем его, увеличиваем на нужное значение, отдаем данные с нужным офсетом, пересохраняем текущий офсет.
    Ответ написан
  • Почему метод не работает после вызова в другом методе?

    @Artsiom_Ryzhanki Автор вопроса
    РЕШЕНИЕ
    class Controller
    {
        public static $vars = [];
        public static $meta = [];
    
        public static function set($vars)
        {
            self::$vars = $vars;
        }
    
        public static function setMeta($description)
        {
            self::$meta['generator'] = 'Название сайта';
            self::$meta['description'] = $description;
        }
    }

    ПРИМЕНЕНИЕ
    class MainController
    {
        public static function indexAction()
        {
            Controller::setMeta('Описание страницы');
            $meta = Controller::$meta;
            $test = 'test'; // ещё какие-то данные
            Controller::set(compact('meta', 'test')); // во вьюху прилетают $meta['generator'], $meta['description'], $test
        }
    }
    Ответ написан
    Комментировать
  • Как работает return true в данном примере?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    почему нельзя использовать конструкцию else?

    потому что цикл прервётся на первой же итерации. Любое из условий приведёт к выполнению return
    Ответ написан
    Комментировать
  • ООП, когда отрабатывают методы класса?

    DevMan
    @DevMan Куратор тега PHP
    конструктор выполняется при создании объекта, остальные методы выполняются при их вызове.
    Ответ написан
    1 комментарий
  • Как изменить содержимое одного столбца для всех строк в одной таблице MySQL?

    coderisimo
    @coderisimo
    вот так всех юзеров можно разом отправить в Урюпинск ))

    UPDATE user u SET u.address = 'Urupinsk'
    Ответ написан
    4 комментария
  • Неужели порог вхождения в андроид разработку настолько высокий?

    Программирую на всяком-разном 30 с лишним лет, пишу под Андроид с самого его начала - начал незадолго до того, как приобрёл HTC A3288 Tattoo, почти 10 лет уже как.

    Не имею опыта работы, но понимаю как работает: Dagger, RxJava2, Moxy, разнообразное юнит-тестирование и всякие либы поменьше. Ничего не помню наизусть, даже методы класса Object. Имею смутное представление о том, как работает многопоточность, какие там есть виды списков и в душе не понимаю, как устроено хэширование объектов. Без IDE с подсказками и онлайновой помощи глух и слеп как котёнок.

    Без работы не сижу. Считаю себя успешным.

    Постараюсь сообщить минимальный набор, который помогает мне и, надеюсь, поможет вам найти себя, работу и всё, что пожелаете. Это всё - очевидные вещи, но, возможно, вы увидите что-то новое.

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

    * Поскольку библиотек с дублирующейся направленностью пруд пруди, важнее знать принцип работы, а не какую-то конкретную библиотеку.

    * Вы должны понимать, что все эти Dagger, RxJava и прочие Moxy - тупо библиотеки тупо пацанов, которые сидят в трусах перед компами и всё такое. То есть, изначально это всё - нонконформистская прогрессивная адова самописуха с присущими ей концептуальными и арфогрофичесскими ошибками, которая в нечастых случаях превращается в продукт примерно корпоративного масштаба. Потому, надо стараться не переоценивать их значимость на вегетативном уровне.

    * Держитесь корней. То есть, за корни. Ну, в общем, за JetPack, AndroidX и всё, что выдумал Google. Это основное и самое важное.

    * Старайтесь обходиться минимумом зависимостей.

    * Кроссплатформа - это совсем другая индустрия. Надо определиться, нативщик вы или кроссплатформа.

    * Обычное трудоустройство напоминает обучение вождению в автошколе: вы учите кучу всего, что требуется, потом сдаёте экзамен, получаете водительское удостоверение и через год помните только правило правой руки и полдюжины дорожных знаков. Ездите по городу по привычке, страдаете от того, что где-то повесили новый или убрали старый знак.

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

    * Иногда важнее знать русский язык, нежели Java или Kotlin. Впрочем, иногда технический английский ещё важнее.

    * Даже если днище, безнадёга и фриланс, надо понимать, что есть два типа клиентов: те, которым надо красивый код в стартап и те, которым код не надо.
    Ответ написан
    2 комментария
  • Где взять актуальную базу России регионов->городов->улиц в формате sql?

    denis_bardak
    @denis_bardak Автор вопроса
    Web Developer
    нашел еще вариант, уже веселее https://kladr-api.ru/
    В итоге хватило api dadata https://dadata.ru/api/suggest/
    Ответ написан
    Комментировать
  • Как поступить с неприятным заказчиком?

    CityCat4
    @CityCat4
    Если я чешу в затылке - не беда!
    Скупой платит дважды.
    Дурак платит трижды.
    Лох платит всегда :)

    Клиент Ваш как минимум первый и второй одновременно :) Вы еще терпели его два года :) Вот теперь пусть платит :)
    Ответ написан
    Комментировать