• С помощью регулярного выражения получить массив, элементами которого будут являться все найденные теги p?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    https://habr.com/post/68345/
    Читайте при жадные и нежадные квантификаторы.

    P.S. А ещё можно воспользоваться средствами самого браузера
    let str = '<h1>Я</h1>\n<p>Помню</p>\n<h1>Чудное</h1>\n<p>Мгновенье</p>';
    let div = document.createElement('div');
    div.innerHTML = str;
    let ps = div.getElementsByTagName('p');
    Ответ написан
    Комментировать
  • Вопрос с собеседования: Как в сет добавить два одинаковых объекта?

    Stalker_RED
    @Stalker_RED
    Правильный ответ: никак, на то он и сет.
    Если вдруг такое понадобилось, то нужно использовать другую структуру для хранения. Можно даже назвать ее MyMagicSet чтобы взорвать кому-нибудь моск.
    Ответ написан
    1 комментарий
  • Как правильно реализовать архитектуру AJAX приложения?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Главная ошибка - писать все с нуля без framework. Есть куча решений, которые помогли бы Вам в решении поставленной задачи. К тому же знать framework надо обязательно, можно не использовать, но знать надо. Ибо именно работая с ними Вы видите правильную архитектуру, правильные подходы и методы.
    Ответ написан
    Комментировать
  • Стоит ли читать Thinking in Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Огромный плюс Java, за который её и любят корпорации - стабильность и полная обратная совместимость. Бóльшая часть знаний из книг по Java2 всё ещё актуальна, не говоря уж о Java6, описанной в 4-м издании "Философии Java".
    Ответ написан
    6 комментариев
  • Как получить строку html-таблицы?

    demon416nds
    @demon416nds
    Разработчик на чем попало
    regexp в помощь
    Ответ написан
    9 комментариев
  • Как проанализировать код большого проекта на PHP на наличие неиспользуемых кусков кода и файлов?

    kopyrin
    @kopyrin
    системный администратор, программист,
    Есть еще ряд полезных инструментов, которые могут пригодиться для тестирования качества кода:
    PHPDCD - Dead Code Detector (DCD) для PHP. Он сканирует в PHP проекте все неиспользуемые функции и методы и сообщает о них.
    $ composer global require 'sebastian/phpdcd=*'
    $ sudo ln -s ~/.composer/vendor/bin/phpdcd /usr/local/bin/phpdcd
    Пример проверки:
    project_directory$ phpdcd .
    PHPMD - PHP Mess Detector. Помогает найти в коде потенциальные проблемы, такие как возможные ошибки, субоптимальный код, усложненные выражения, неиспользуемые параметры, методы, свойства.
    $ composer global require 'phpmd/phpmd=2.2.*'
    $ sudo ln -s ~/.composer/vendor/bin/phpmd /usr/local/bin/phpmd
    Пример проверки:
    project_directory$ phpmd . text codesize,unusedcode,naming
    PHP Depend - показывает качество дизайна кода для расширяемости, повторного использования и сопровождения.
    $ composer global require 'pdepend/pdepend=*'
    $ sudo ln -s ~/.composer/vendor/bin/pdepend /usr/local/bin/pdepend
    Пример запуска
    phpDocumentor - инструмент для генерирования документации из PHP кода.
    $ composer global require 'phpdocumentor/phpdocumentor=*'
    $ sudo ln -s ~/.composer/vendor/bin/phpdoc /usr/local/bin/phpdoc
    Пример запуска:
    project_directory$ mkdir docs && phpdoc -d . -t docs
    PHP CodeBrowser - инструмент для создания HTML презентации PHP кода, где выделены участки с выявленными нарушениями по обеспечению качества инструментов, таких как PHP CodeSniffer или PHPMD.
    $ composer global require 'mayflower/php-codebrowser=~1.1'
    $ sudo ln -s ~/.composer/vendor/bin/phpcb /usr/local/bin/phpcb
    Пример запуска:
    project_directory$ mkdir cb && phpcb -s . -o cb
    PHP Copy/Paste Detector (PHPCPD) - инструмент для поиска дублированного кода.
    $ composer global require 'sebastian/phpcpd=*'
    $ sudo ln -s ~/.composer/vendor/bin/phpcpd /usr/local/bin/phpcpd
    Пример проверки:
    project_directory$ phpcpd .
    PHPLOC - инструмент для быстрого измерения размера и анализа структуры PHP проекта.
    $ composer global require 'phploc/phploc=*'
    $ sudo ln -s ~/.composer/vendor/bin/phploc /usr/local/bin/phploc
    Пример проверки:
    project_directory$ phploc --log-xml phploc.xml .
    PHP CodeSniffer - набор из двух PHP инструментов. Основной - phpcs, позволяет выявить нарушения стандартов кодирования в PHP, CSS и JS файлах. И второй - phpcbf, позволяет проводить автоматическую коррекцию стандартов. PHP CodeSniffer является важным инструментом , благодаря которому код остается чистым и последовательным.
    $ composer global require 'squizlabs/php_codesniffer=*'
    $ sudo ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin/phpcs
    Дополнительная проверка стандарта Symfony2 для PHP CodeSniffer:
    $ cd ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards
    $ git clone git://github.com/escapestudios/Symfony2-coding-standard.git Symfony2
    $ cd Symfony2
    $ git checkout 2.0.1
    Пример проверки:
    project_directory$ find . -type f -name '*.php' -exec phpcs --standard=Symfony2 '{}' ';'
    Ответ написан
    Комментировать
  • Как проанализировать код большого проекта на PHP на наличие неиспользуемых кусков кода и файлов?

    Adamos
    @Adamos
    Если файлы в проекте подключаются исключительно по PSR - анализаторы, может, и помогут.
    Но РНР никому не мешает подключать их через отдаленные глубины задниц, как шаблоны и локализация в Битриксе, например. Ни один робот эти дебри не расковыряет в жизни.
    Так что пробуйте анализаторы, конечно. Но не надейтесь, что вы по результатам анализа сможете просто все выбранное взять и безболезненно удалить. Головой думать все равно придется.
    Например, тот же Шторм позволяет сделать быстрый поиск строки по всему проекту. И если название класса не встречается нигде, кроме файла с этим классом - да, возможно, он кандидат на удаление...
    Ответ написан
    8 комментариев
  • Какой язык/фреймворк выбрать?

    sim3x
    @sim3x
    Для выбора используйте монетку или кубик

    Не учите скопом бек и фронт - выберите что-то одно

    Можно сделать исследование спроса на инструменты в своем регионе и выбирать с умом
    Но никто так не делает, естественно.
    Ответ написан
    5 комментариев
  • Какой язык/фреймворк выбрать?

    longclaps
    @longclaps
    Единственный действительно универсальный подход состоит в том, чтобы не изучать ничего.
    В таком случае твои познания в любой области будут равно глубоки.
    Всё остальные неизбежно ведёт к специализации.
    Ну, ты понял.
    Ответ написан
    1 комментарий
  • Какие есть CMS для java-backend разработчика для фриланса?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Вы не найдёте заказчиков на Java CMS.
    Ответ написан
    1 комментарий
  • Какие есть CMS для java-backend разработчика для фриланса?

    rockon404
    @rockon404
    Frontend Developer
    Что скажите в целом про идею зарабатывать фрилансом на джаве подобным образом?

    5b79aa970b48b395802195.jpeg
    Попробуйте получить работу в компании на позиции Java Junior Developer. Наберетесь опыта и тогда уже можно думать об удаленной работе или фрилансе.
    Ответ написан
    4 комментария
  • Нейросети. Почему Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что помимо простоты, лаконичности и выразительности, позволяющими с минимальными затратами времени и сил разрабатывать сложные алгоритмы, язык обладает ещё и мощным механизмом интероперабельности с C\C++, что открывает доступ к быстрым вычислениям.
    Ответ написан
    1 комментарий
  • На сколько быстро можно создать двухстраничный сайт-анкету?

    rockon404
    @rockon404
    Frontend Developer
    На сколько быстро можно такое реализовать, если нет знаний в этой сфере вообще?

    Настолько быстро, насколько вы можете получить необходимые знания + время на разработку.

    Как и какие ресурсы можете посоветовать?

    Любую фриланс биржу.

    Можно ли реализовать не потратив средств?

    1. Сделать самому. В вашем случае долго.
    2. Бартер.
    3. Найти спонсора/инвестора/мецената.

    Тут в соседнем ответе отличную альтернативу сайту предлагают.
    Ответ написан
    Комментировать
  • Как через PHP определить, что мой телефон подключился к моей WIFI сети?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    $ip = "127.0.0.1";
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') exec("ping -n 1 {$ip}", $output); //Windows
    else exec("ping -c1 {$ip}", $output); //*nix
    echo(preg_match("/ TTL=\d+/i", implode("\n", $output)) ? "OK!" : "No PING");
    Ответ написан
    4 комментария
  • Не работает long polling, как исправить?

    @BorisKorobkov Куратор тега PHP
    Web developer
    Вариантов всего 2. Либо веб-сервер закрывает коннект после N секунд отсутствия передачи данных. Либо браузер.
    В первом случае поможет проверить это запись в лог-файл. Во втором - F12.

    Как исправить - не извращаться, а использовать web socket.
    Ответ написан
    Комментировать
  • Объясните новичку про модули и библиотеки?

    igorzakhar
    @igorzakhar
    Мне понравилось как здесь изложено:
    Питон: импорт и модули - часть 1.
    Питон: импорт и модули - часть 2.

    + Никто не отменял классику "Изучаем Python" Марк Лутц.
    Ответ написан
    Комментировать
  • Объясните новичку про модули и библиотеки?

    Mi11er
    @Mi11er
    A human...
    Одна фигня.
    import пакет\либа

    Типа
    import os
    from os import *
    import request as req

    Так же можешь свои либы писать и их импортировать.
    Ответ написан
    Комментировать
  • Я хочу найти красивый фреймворк для GUI для Python. Что мне выбрать кроме Tkinter'а и PyQt'а?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Во-первых, Qt и Tk - это не фреймворки, а библиотеки. Во-вторых, лучше Qt вы ничего не найдёте. В-третьих, список всех gui-библиотек легко гуглится. И наконец, в-четвёртых, откуда нам знать, какая библиотека вам больше подойдёт и почему не устраивают Qt и Tk?
    Ответ написан
    Комментировать
  • Почему в данном случае в массив добавляется только последнее значение?

    @nonamemovich
    Важно понимать отличие ссылочных типов данных(object) от значимых типов данных(number, string, boolean, undefined, null, symbol (в ECMAScript 6)) в javascript.

    var a=6;
    var b = a;


    a и b будут указывать на разные участки памяти, изменение b не скажется на a.

    var obj = {
      prop1: "value1",
      prop2: 123
    }
    var refObj = obj;


    теперь obj и refObj это разные ссылки на один и тот же участок в памяти, присвоив refObj.prop1 = "valueChanged" вы измените содержимое участка памяти где размещено свойство объекта, и потому obj.prop1 == "valueChanged".
    Однако важно понимать что refObj и obj разные ссылки пусть хоть и ссылаются на один и тот же объект, переназначение одной из ссылок никак не скажется на другой ссылке refObj = [1,2,3,4,5] (массивы в js тоже объекты определённой структуры),
    obj всё также будет равен { prop1: "value1", prop2: 123}.

    При
    typeof dataJson[i].date != 'object'
    или вам нужно было сохранить ссылки в массив arrInfo
    можно просто пушить dataJson[i].date в массив.

    var ignoreObj = new Map(); // Map может использовать в качестве key всё что угодно( number, string, object)
    for(let i = 0; i < dataJson.length; i++) {
    	if(!ignoreObj.has(dataJson[i].date)) {       // ignoreObj.has(obj) скажет был ли obj добавлен в ignoreObj
    		arrInfo.push(dataJson[i].date);
    		ignoreObj.set(dataJson[i].date, 1);    // запоминаем объект, чтобы повторно не добавлять в массив
    	}
    }

    при typeof dataJson[i].date == 'object' изменение свойств dataJson[i].date скажется и на arrInfo.

    Либо если вы хотели "запомнить" объекты в текущем состоянии выполнить копирование свойств dataJson[i].date в новый объект.

    var ignoreObj = new Map(); 
    
    for(let i = 0; i < dataJson.length; i++) {
    	if(!ignoreObj.has(dataJson[i].date)) { 
    		var clone = { date:{} };                     // объект для "клонирования"
    		var clone.date = Object.assign({}, dataJson[i].date);         // непосредственно клонирование свойств <b>первого уровня</b> dataJson[i].date.
    		arrInfo.push(clone);
    		ignoreObj.set(dataJson[i].date, 1);  
    	}
    }

    при таком варианте изменение свойств dataJson[i].date не изменит содержимого arrInfo.

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

    @dev-rob
    На мотивации далеко не уедешь. Попробуйте использовать дисциплину, а там уже после Ваших достижений и мотивация появится.
    Ответ написан
    1 комментарий