• Что за вид взлома?

    @maxtm
    Make money, not job
    Это самый просто шел.
    php.net/manual/ru/function.assert.php
    Если assertion задается в виде строки, оно будет рассматриваться функцией assert() как PHP код.
    Ответ написан
    Комментировать
  • Установка Asterisk, с чего начать?

    @silverjoe
    Вообще лучше начинать с чтения книги "Asterisk будущее телефонии"

    Если намерены разбираться - ставьте "голый" без всяких web-мордочек.

    Если нужна web-морда - берите FreePBX.
    Не берите Elastix, он во-первых дырявый (поломают вас и звонить будут в офшоры) во-вторых они анонсировали переход с Asterisk на 3CX - тупиковый для вас выбор будет.

    По пунктам:
    1. В сети множество советов ставить чистый Asterisk на CentOS или Asterisk 13 + FreePBX 12 Ubuntu 14?

    Лучше, конечно CentOS - там asterisk из исходников ставиться проще - но это мое ИМХО и опыт.
    Если возьмете Ubuntu - то берите 16 версию.

    2.1. Допустим определился с операционкой, что будет моим сервером?

    ????

    2.2. Какие требования к серверу «для тестов»? — кроме памяти чтобы хранить записи.

    1 CPU, ОС x64, RAM 512-1024, Диск от 10-15 Гб. Для тестов хватит, вы же там не наговорите на террабайты записей :)

    2.3. Можно ставить на ноутбук под Windows?

    В виртуалку.

    2.4. Можно на VirtualBox?

    Можно, хотя сам его не использую.

    2.5. Можно на шаред хостинг?

    Если есть доступ по ssh и root - можно.

    2.6. VPS хостинг? — какой посоветуете для начала?
    vscale - минимальный конфиг + вручную включить swap. Для начала хватит.

    2.7. Посоветуйте мануалы

    Книга "Asteriks будущее телфонии" можно найти/купить на русском, и последняя редакция - Asterisk: The Definitive Guide, 4th Edition пока только на английском

    3.1. Можно оформить на себя номера 812 СПб / 495 Мск? Через кого?

    ищите по ключевым словам "виртуальные номера" "прямой московский номер sip"
    Много кто предоставляет. Не хочу советовать, но например Манго, хотя лучше с ними не связываться.

    3.2. Какими операторами связи посоветуете пользоваться для звонков по СПб+Мск / Россия / СНГ?

    Билайн, МТТ, Мультиком, sipnet, zadarma их куча!

    3.3. Нужно как-то настраивать переадресацию на мобильный?

    В диалпалне

    3.4. Или покупать особый телефон?

    IP-телефоны, могут быть softphone

    3.5. Или только через web-интерфейс?

    Если вы про звонки - то это уже при использовании WebRTC - но тут лучше это организовывать не на asterisk
    Ответ написан
    Комментировать
  • Установка Asterisk, с чего начать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Использую чистый Asterisk на Ubuntu LTS. Мне проще написать свой конфиг (считай, программу), чем разбираться с дополнительными концепциями, требованиями и ограничениями FreePBX. Windows, ЕМНИП, не поддерживатеся, виртуалка возможна, но тогда не VirtualBox, а гипервизор HyperV, Xen и т.д.
    В идеале сервер должен быть локальным, VoIP критична к качеству связи. Большие задержки, джиттер, пропадание пакетов сразу будут слышны в разговоре.
    Определитесь, какие будут входящие линии. Для использования аналоговой телефонии, E1 или GSM придётся покупать дополнительные шлюзы или платы расширения в сервер. Если только IP-телефония, то рекомендую организовать отдельный небольшой интернет-канал или попробовать договориться с провайдером о приоретизации трафика.
    Ответ написан
    Комментировать
  • Как найти кол-во мошенников в главном офисе компании?

    evgenyspace
    @evgenyspace
    Исследователь
    5% из 200 или 10 человек. Информация о реальном положении дел (о том, что в офисе 1% мошенников или 2 человека) не отменяет того факта, что мошенниками могли оказаться 10 человек. Могли, но не оказались. Проверка только выявила, что 2 из 10 реальные мошенники.

    P.S.: посмотрите четвертый пример к Теореме Байеса https://ru.wikipedia.org/wiki/Теорема_Байеса
    Ответ написан
    5 комментариев
  • Самый правильный цикл WP? Что и когда использовать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вы немножко запутались, have_posts() это не цикл, а метод объекта WP_Query, проверка если ли посты в текущем экземпляре WP_Query, независимо от того как данный экземпляр был вызван/создан - это основной запрос или произвольный. Что касается запросов, то все просто:

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

    2. Если кроме основного запроса нужен дополнительный, например у вас на главной есть уже стандартный запрос, который выводит последние записи, а вы хотите еще отдельно вывести записи произвольного типа (например, вопросы из FAQ), то используете WP_Query. В принципе, в большинстве случае если нужен отдельный от основного цикл / набор постов - используйте WP_Query. Но важно помнить, что в зависимости от задачи вы можете передать несколько важных параметров, которые повлияют на скорость. Например, по умолчанию WP_Query выполняет CALC_FOUND_ROWS (подсчет всего найденных строк), который нужен для пагинации. Если вам нужно всего лишь получить X постов, используйте параметр 'no_found_rows' => true в комбинации с указанием четкого количества постов в параметре posts_per_page - в этом случае общее количество не будет считаться. Также, по умолчанию WP_Query запрашивает таксономии и метаданные ко всем постам, и кеширует их. Это тоже можно отключать. Также, при выполнении WP_Query может быть затронут плагинами через фильтры - например posts_where (WHERE clause в MySQL). Еще важно понимать, что вызов new WP_Query возвращает новый объект WP_Query, по которому можно выполнить Loop с помощью while ( have_posts() ) : the_post() - в этом случае посты в итерации цикла будут попадать в глобальный scope.

    3. get_posts - это как шорткат на WP_Query с определенными предустановленными параметрами. Если нужно просто получить несколько постов по каким-то параметрам - используйте эту функцию. Первое, и основное - эта функция внутри вызывает именно new WP_Query. Второе - эта функция возвращает массив постов (объектов WP_Post). Третье - эта функция вызывает WP_Query c предустановленными параметрами no_found_rows (не считать общее количество постов, соответствующих параметрам) и suppress_filters (что отключает все фильтры над запросом кроме pre_get_posts). Вот и вся разница.

    4. query_posts - никогда, НИКОГДА, ни при каких обстоятельствах не использовать данную функцию. Считайте, что ее не существует. Точка.
    Ответ написан
    Комментировать
  • Как загрузить все страницы после главной в браузер пользователя?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    Все файлы с двух других страниц, это HTTPv2 / Server push. Почитать, например тут.
    Ответ написан
    3 комментария
  • Какие можете дать советы по постоянной работе в ночное время?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    После пробуждения и перед началом работы - обязательно свежий воздух, солнечный свет, физическая активность хотя бы на уровне прогулок по пару километров. Спортзал весьма полезен (нагуглите регуляторную роль тестостерона и когда его в организме много/мало). Регулярное, а главное - здоровое питание (витамины, минералы и тд). Организм со временем перестраивается в такой режим и чувствует себя нормально.

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

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

    @imikh
    Постоянная работа по ночам - ужас для организма и нервной системы. Солнечный свет нужен.
    Как варианты, кроме полноценного сна и питания (совершенно согласен с xmoonlight):
    - Витамины, особенно группы D
    - Переехать в соответствующий часовой пояс. Если это US, то Мексика к примеру, там относительно дёшево сейчас. Или Южная Америка.
    Ответ написан
    5 комментариев
  • Какие можете дать советы по постоянной работе в ночное время?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    После ночной работы ОБЯЗАТЕЛЬНО: хорошее питание и полноценный сон.
    А в остальном - никаких проблем абсолютно!
    Ответ написан
    2 комментария
  • Как вы ведете свои проекты?

    lxfr
    @lxfr
    Код в гите, конфиги в локальной папке, инфраструктура в докер, пароли в менеджере паролей, переписка в скайпе, файлики на почте, задачи в менеджере задач.
    Ответ написан
    19 комментариев
  • Вирусы на WP, не могу найти как быть?

    Антивирусы для компьютеров плохо работают на поимку такого типа заражений.

    Попробуйте специальную утилиту для чистки сайтов - я с её помощью несколько вылечил, проблем не было:
    Ссылка

    Выводит список зараженных и подозрительных файлов - и места, где находится зловредный код
    Ответ написан
    Комментировать
  • Не переводится админка темы в wordpress, хотя сам сайт перевелся, как быть?

    edalis
    @edalis
    HTML, CSS, JS, Node.js
    Если вы хорошо посмотрели и фразы, находящиеся в админке, не входят в 300 оставшихся непереведенных строк, то это значит, что админка не подготовлена для перевода. Возможен так же вариант, что в теме есть еще файлы перевода, находящиеся в других папках темы. Надо поискать их. Если их нет, то единственный вариант - искать фразы админки в файлах темы и переводить прямо там. Однако, при обновлении темы весь перевод придется делать снова. Хотя, если использовать дочернюю тему, ущерб при обновлении можно свести к минимуму. Но это уже от темы зависит, возможно не получится сделать перевод в файлах дочерней темы.
    Ответ написан
    2 комментария
  • Как избавиться от привычки усложнять задачу?

    romy4
    @romy4
    Exception handler
    Этот процесс называется определение milestones. Вы сперва определяете MVP (minimal valuable product) — то есть тот уровень завершённости (без рюшечек и плюшек), при котором можно получать выгоду и дальше вы уже строите отталкиваясь от MVP
    Ответ написан
    Комментировать
  • Оптимальный вариант натяжки лендинга на WP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Я уже отвечал на подобный вопрос недавно. Делаете custom post type "секции". Каждая запись - отдельная секция. Для них создаете поля ACF. Шаблон index.php, модифицируете главный запрос через хук pre_get_posts чтобы загружал записи вашего произвольного типа. На каждую запись для удобства делаете свой шаблончик и инклудите его через get_template_part().
    Ответ написан
    2 комментария
  • Меньше стек технологий, больше шанс устроиться на удаленную работу?

    Bandicoot
    @Bandicoot
    Вась-программист
    Можно выбрать "вечный" стек и сидеть на нем как минимум несколько лет.
    Это HTML - CSS - JS (jQuery) - PHP (какой-либо один фреймворк) - MySQL.
    Сам на нем с 2008 г., неоднократно пытался с него соскочить сначала на full-stack js, потом на Python-Django, затем на RoR. Ни одна из попыток не увенчалась успехом, каждый раз возвращался к пыху)
    Ответ написан
    6 комментариев
  • Меньше стек технологий, больше шанс устроиться на удаленную работу?

    @xfg
    Есть вакансии в веб-студиях, где нужен человек, который уже готовую верстку поставит на wordpress/bitrix, установит нужные модули и редко (почти никогда) напишет свой модуль. В общем ставят задачу собрать сайт и отдать контент-менеджеру. В такой вакансии будет указан стек технологий, но по факту, всё что нужно знать, это куда воткнуть вывод данных в html и как загрузить своё поделие на сервер по ftp. Таких вакансий в PHP довольно много, можно устроиться с минимальным набором знаний.

    С другими языками сложнее, там нет конвеерных веб-студий делающих сайты на цмс за 1 день, как в PHP. Там как правило командой делают нетипичный проект некоторое время для решения бизнес-задач и к таким разработчикам требования значительно выше, знания алгоритмов, архитектуры, паттернов, системы контроля версий, фреймворков, TDD и т.п.
    Ответ написан
    2 комментария
  • Меньше стек технологий, больше шанс устроиться на удаленную работу?

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

    Меньше всего технологий, пожалуй, это будет Ассемблер + C/C++, там одна основная технология - очень чёткое понимание всех принципов работы машины от А до Я. Но, на начальном этапе, без грамотного преподавателя, Ваше обучение может затянуться на годы. К тому же, с очень большой вероятностью у Вас не получиться отвертеться от других технологий, например, от баз данных. Хотя, есть конечно вариант устроится писать на чистом Си (или си-подобном языке), например, системный софт, допустим это будут программные виртуализаторы, но в этом случае Вам придётся знать не только сам язык, но и принципы работы целой кучи различной аппаратуры на самом низком уровне, например очень чётко понимать что такое сетевая карта, что такое пакет, что такое буфер памяти, что такое фрейм и так далее, вплоть до устройства ядра Linux/BSD/etc.

    Другой вариант Java - но... тут тоже не всё так сладко. Хотя нет, наверное, меньший стек из мне известных - это пожалуй, C#-разработчики, не редко 1 разработчик пишет в каком-то одном вполне конкретном ключе, без вёрстки и настроек серверов и прочих "прелестей" и даже без баз данных, иногда. Но у C# - довольно большой "внутренний стек" и вот так вот с наскока, взять и писать на C# - не получиться, т.к. C# - это не только язык, но и огромная библиотека классов и готовых решений, поверх которой он построен (на которую он "натянут").

    Так же, есть случаи, когда профессиональные PHP разработчики работают только с бэк-эндом, т.е. PHP + База данных. Но обычно в таких проектах объёмы БД исчисляются чуть ли не петабайтами, а обёъмы когда иногда достигают сотни мегабайт... за то, довольно "узкий стек".

    В целом, мне встречались вакансии, и довольно не редко, где требуется человек "без лишнего ума", который знал бы как на 1.5 CMS'ках "побыстрому запилить сайт" и натянуть и возможно подправить немного готовый шаблон. Зарплата и уровень развития в таких компаниях и на таких вакансия - соответствующие.

    И, пожалуй да, наверное самый просто вариант, это будет PHP + CMS "1с Битрикс". Это довольно популярная CMS, на довольно популярном языке, состоящая чуть менее чем полностью из "странно написанного кода" (мягко говоря), страшно тормозная, требующая специфических настроек сервера, и в идеале как минимум VPS, что бы сайт подавал признаки жизни. Но, не смотря на всё это - это довольно популярная в бизнес-сфере CMS (о причинах её популярности можно написать целую книжонку). То есть, учите PHP, учите 1с-Битрикс -> Профит, Вы битрикс-разработчик, знания всего остального в 95% случаев не обязательны.

    Ну и ещё пожалуй, можно рассмотреть вариант изучения самого 1с (1с Бухгалтерия например). Я как человек сам плотно столкнувшийся с этой сферой - могу сказать, что глобальных знаний от таких разработчиков не требуется, ну кроме основ экономики и бух. учёта. И работы, в т.ч. удалённой - у них хватает. Более того, даже язык программирования, с которым Вам придётся работать - русифицирован, во всех смыслах этого слова.
    Ответ написан
    12 комментариев
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Как сделать систему url для регионов?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Изучайте про add_rewrite_rule, смотрите как тот же Polylang c ним работает. Принцип точно такой же, ведь у Polylang язык - это скрытая таксономия. Ваши регионы, по сути, тоже.
    Ответ написан
    1 комментарий