• Как Кинопоиск делает черный квадрат в захвате экрана?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Есть ооочень хороший метод показывать козу таким ... нехорошим козлам :)

    Ставится VB и приложение записи экрана
    В VB ставится винда
    В винде, которая в VB, ставится хром и идется на сайт и запускается просмотр.
    В хостовой системе запускается запись экрана или делается скрин

    ПРОФИТ!
    Ответ написан
    7 комментариев
  • Хочу изучить внутренности php, какую литературу посоветуете?

    iMedved2009
    @iMedved2009
    Не люблю людей
    Ответ написан
    Комментировать
  • Создаю ботов в дискорде, куда можно пойти фрилансить чтобы получать с этого +- нормальные деньги?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    иди на Odesk.
    Но шансов у тебя ноль, потому что задаёшь элементарные вопросы, на которые не можешь самостоятельно найти ответ
    Ответ написан
    3 комментария
  • Почему всем так нужен Doctrine, если он много не умеет?

    @Flying
    Doctrine реализует концептуально другой подход к работе с данными, именно в этом её большое преимущество и именно из этого следуют её ограничения.

    Если вы когда-нибудь сталкивались с паттернами проектирования то, возможно, слышали о таком человеке как Мартин Фаулер и о его книге "Patterns of Enterprise Application Architecture". В ней описываются паттерны проектирования enterprise level приложений. В этой книге Фаулер предложил набор паттернов, организующих работу с источниками данных через представление этих данных в виде связанных между собой объектов. В этот набор входят Data Mapper, Identity Map, Unit of Work и множество других паттернов.

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

    Попробуйте представить себе большой бизнес-проект над которым работают множество людей, в котором есть сотни видов данных, взаимодействующих друг с другом и определены сложные процессы вовлекающие множество видов данных. Разумеется это все можно написать и поддерживать вручную, таких примеров много, вопрос в стоимости подобной работы. Представьте себе необходимость вручную описывать последовательность запросов для сохранения данных в 20 таблиц и необходимость поддерживать корректность этого кода при всех следующих изменений бизнес-требований проекта. Уверен, если после полугода подобной работы вам предложат заменить всё это на одну строку $em->flush() - вы с радостью согласитесь и, возможно, тогда поймёте что даёт Doctrine разработчику.

    Именно из идеи перевода фокуса разработчика с деталей реализации хранилища данных на детали реализации бизнес-логики проекта рождаются ограничения Doctrine. Они могут восприниматься негативно если пытаться воспринимать Doctrine и DQL как урезанный SQL, почему-то возвращающий объекты, а не массивы. Да, разумеется какие-то сложные аналитические запросы вы на DQL не построите, но это только потому что у Doctrine другая цель. Если посмотреть на DQL чуть пристальнее (к примеру на то как в нём описываются join'ы) то можно заметить что Doctrine отталкивается не от того как данные разложены по таблицам, а от того как данные представлены в entities. Это не самое заметное, но очень важное отличие т.к. оно определяет пространство операций над данными. Грубо говоря приведённый вами ifnull() в DQL становится довольно бессмысленной конструкцией т.к. эта функция довольно слабо применима к объектам.

    Разумеется в реальных проектах зачастую бывают задачи которые требуют работы с данными в базе данных за пределами Doctrine, это нормально, ни один инструмент не является всеобъемлющим. Однако описываемые вами "недостатки" Doctrine проистекают скорее от непонимания того что это за инструмент и зачем он нужен, какие задачи он призван решить. Это непонимание устраняется через изучение того с чем вы работаете на более глубоком уровне. Если вы решите устранить его - вы получите в свои руки один из лучших инструментов для работы с данными в бизнес-проектах который только есть в мире PHP и тогда, надеюсь, сможете оценить его по достоинству.
    Ответ написан
    Комментировать
  • Какой переводчик лучше использовать для наполнения сайта?

    RotgarSett
    @RotgarSett
    SEO Эксперт
    deepl лучше всех. Долго искал и выбирал. Он лучший.

    Однако если у вас есть время и возможность заморочиться и настраивать переводчик чтобы получилось практически идеально то попробуйте Promt.
    Ответ написан
    1 комментарий
  • Обязан ли человек предоставлять пароли от собственного ноутбука следственным органам?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Кажется в рамках законодательства вы не обязаны помнить пароли. Плохая память вроде не преступление.
    Ответ написан
    Комментировать
  • Как стать Junior верстальщиком?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Я все починил, теперь ваша карьера и ориентация в порядке!
    Не благодарите.
    5de34eb3a4d87370303583.png
    Ответ написан
    10 комментариев
  • Node.js и php - как совместить?

    Я был в похожей ситуации, поставил сокет сервер и отдельно сайт на php. Получилось так, что сокет-сервер нагружал систему очень сильно (там были проблемы c DDOS).

    В итоге решил, т.к. данные для всех одинаковые, просто ставил скрипт по cron все записывал в json файл, а дальше обычным ajax его забирал раз в секунду, файл отдавался nginx, т.е. не нужно было подниматься всякие бекенд-процессы, в результате нагрузка значительно упала.

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

    Не используйте node в данной ситуации, я бы вам это посоветовал.
    Ответ написан
    Комментировать
  • Зачем системному администратору в техникуме дают математику?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Очередной "зачем меня учат" - вопрос. Объясняю:

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

    Именно для этой цели во все учебные программы засунуты такие ненужные вещи как физкультура (чтобы в 30 лет не скупать половину аптеки), культурология (чтобы отличать Бебеля от Бабеля, Бабеля от кабеля, кабель от кобеля, а кобеля от суки), математика и прочее барахло.

    Умение ковыряться с абстрактными буковками на бумажке что-то там улучшает в мозгах, после чего решение тех же задач по планированию работ получается с меньшими усилиями. И кроме того, вы не будете всю жизнь тянуть кабели (надеюсь), так что начальные знания полезно иметь.
    Ответ написан
    4 комментария
  • Упрощенное переключение между строками кода?

    migelbd
    @migelbd
    Человек
    В продуктах JetBrains есть закладки..
    Ctrl+Shift+(1-9) - установить закладку
    Ctrl+(1-9) - перейти на закладку
    Ответ написан
    Комментировать
  • Как записать данные в переменную?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    А почему должно? Это С, не С++, не перл, где существуют самые дикие конструкции. Здесь все просто как полено :)
    char domen[100];
    char stroka = "В чащах юга жил бы цитрус";
    
    strcpy(domen, stroka);

    Оператор sizeof возвращает длину типа. Вам он вернет 1, потому что длина типа char - 1 байт :)
    Если хотите сформировать одну длинную строку - то индекс можно вычислять, но если слева стоит что-то типа domen[N], то справа может быть только литерал. Для записи в массив строки с определенной позиции нужно использовать все то же strcpy()
    Ответ написан
    4 комментария
  • Как отследить изменение текста поля ввода?

    taliban
    @taliban
    php программист
    onfocus — сохраняем длину текста в поле
    onkeyUp — проверяем длину текста в поле, и если она не равна, то текст был изменен.
    Ответ написан
    2 комментария
  • Почему видеоуроки - это зло?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    не важно каким образом ты что-то изучаешь, главное, что в итоге ты получишь знания

    Кроме достижения цели есть еще такой фактор, как время. А время, как известно - деньги. Объемы и скорость потребления текстовой информации всегда выше, чем видео. Текст - это:
    • Возможность бегло просматривать, на автомате фильтруя воду
    • Возможность пользоваться поиском и гиперссылками
    • Возможность копипастить
    • Зачастую более полная информация
    • Чем больше читаете, тем быстрее читаете, тем больше читаете, тем быстрее читаете....
    • + В наших краях читать на английском большинству проще, чем слушать

    Как вы читаете подобную литературу и как мне не умирать после каждой страницы?

    Книги и статьи по разработке, маны и документации - это тексты, которые читать последовательно от корки до корки долго, скучно и неэффективно. Гораздо лучше быстро скользить взглядом, останавливаясь на важных моментах. А если объем большой - то сразу пролистывать все, а потом "спускаться на уровень ниже" за подробностями по тому или иному вопросу. Так книжка на 700-800 страниц может пролистываться за день, а затем при необходимости можно точечно просматривать темы, которые нужны на данный момент. Вести записи в тетрадях для запоминания также почти всегда неэффективно, лучше сразу практиковаться. Что нужно - само запомнится, а что не нужно - просто знайте где почитать, на случай если оно вдруг понадобится.
    Ответ написан
    Комментировать
  • Обязательно ли читать книгу по языку/технологии что бы быть тру и продвинутым кодером?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы не найдёте ни одного авторитетного программиста с мировой известностью, который бы утверждал, что курсы и видео-уроки лучше книг. Обычно это утверждают либо профаны, оправдывающие своё нежелание читать, либо авторы курсов, делающие деньги на лентяях и глупцах. И я лично за 18 лет в отрасли встретил множество программистов, но ни одного хорошего, выучившегося по курсам и видео-урокам.

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

    К тому же, после достижения профессионального уровня достаточного чтобы называться специалистом, вы обнаружите, что необходимые на этом уровне знания можно почерпнуть только из документации. То есть всё равно придётся читать. Много и часто.

    Наконец, постоянная практика чтения неизбежно приводит к увеличению скорости чтения. И наступает момент когда прочитать учебник будет в 10 и более раз быстрее, чем просмотреть видеокурсы по той же теме и в том же объёме.

    Кроме того, чтение развивает абстрактное мышление - основной инструмент разработчика.
    Ответ написан
    16 комментариев
  • Переход на mysqli, как по новым стандартам?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Открыть документацию? Да не, бред какой-то.

    А вообще не надо менять шило на мыло, используйте PDO.
    Ответ написан
    6 комментариев
  • Как сделать парсер на php с использованием cURL с авторизацией?

    FootWork
    @FootWork Автор вопроса
    Доделал. В результате код авторизации получился такой:
    <?php
    
    $url = 'http://fantasts.ru/forum/index.php?act=Login&CODE=01&CookieDate=1';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); // отправляем на 
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"); 
    curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
    curl_setopt($ch, CURLOPT_REFERER, "http://fantasts.ru/forum/index.php");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// просто отключаем проверку сертификата 
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/my_cookies.txt'); // сохранять куки в файл
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/my_cookies.txt');
    curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
    $login = array(
    	'UserName' => 'YourLogin',
    	'PassWord' => 'YourPass'
    );
    curl_setopt(($ch), CURLOPT_POSTFIELDS, $login);
    $result1 = curl_exec($ch);
    $url2 ='http://fantasts.ru/forum/index.php?';
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_REFERER, "http://fantasts.ru/forum/index.php?act=Login&CODE=01&CookieDate=1");
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/my_cookies.txt');
    $result2 = curl_exec($ch);
    if (curl_errno($ch)) 
    {
       print curl_error($ch);
       exit;
    }
    else
    {
    	echo 'LOGIN WAS SUCCESFULL';
    	echo $result2;
    }
    curl_close($ch);
    
    ?>


    Объясните только, почему когда я ставлю
    curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки

    Все норм (хотя как он работает без заголовков??)
    А если пытаюсь еще больше быть похожим на браузер, т.е. пишу
    $header  = array
    (
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
        'Accept-Encoding: gzip, deflate',
        'Content-type: application/x-www-form-urlencoded'
    );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

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

    Если интересует web-направление, то, конечно, PHP. Язык прост в изучении и сразу ориентирован под web. Не слушайте сторонников Python - они вечно пытаются протолкнуть свой язык во все области.

    Если не web-направление, то Python.
    Ответ написан
    1 комментарий
  • Не могу написать регулярку?

    @ghostiam
    На Go писатель, серверов пинатель.
    Такая?
    [a-zA-Z]+_[a-zA-Z]+
    https://regex101.com/r/cO8lqs/6540

    Сгенерированный код:
    $re = '/[a-zA-Z]+_[a-zA-Z]+/';
    $str = 'Name_Surname
    qwwer_asdasd';
    
    preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
    
    // Print the entire match result
    var_dump($matches);
    Ответ написан
    8 комментариев
  • Не могу написать регулярку?

    chelkaz
    @chelkaz
    preg_match('/^[a-z_]+$/i', $input_line, $output_array);
    Ответ написан
    Комментировать
  • Не могу написать регулярку?

    или вот так
    preg_match('/[a-z_]+/i', 'ваша строка', $matches,);

    https://regex101.com/r/egnELv/1
    Ответ написан
    Комментировать