• Что стоит использовать для защиты PHP-кода на текущий момент?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Сообщество считает, что всё это бессмысленные ужимки, которые в 99% случаев используются только для того, чтобы прикрыть крайнее убожество кода. Серьёзные продукты никто не шифрует. Чем, в частности, объясняется заброшенность всех этих, на первый взгляд многочисленных, проектов, которые не выходят из стадии "мы тут с одноклассниками придумали крутую штуку". потом одноклассники либо умнеют и перестают теребить ерунду, либо находят занятие более интересное, чем пхпе.

    Сам по себе код мёртв. Он устарел ещё до релиза. В работе софта важна не дискетка с исходниками, а поддержка. Вот поддержку и надо продавать. И не дрожать над каждым вором. Потому что защита от одного вора отпугивает 10 честных покупателей.

    Плюс всегда есть SAAS.
    Ответ написан
    4 комментария
  • Как понять эти селекторы?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    К элементу у которого есть оба класса:
    <div class="class-1 class-2">
        Some text
    </div>

    Если бы между ними был пробел .class-1 .class-2 тогда стиль применялся бы к .class-2 который находится внутри .class-1
    <div class="class-1">
    	<div class="class-2">
    		Some text
    	</div>
    </div>
    Ответ написан
    Комментировать
  • Как максимально быстро кликнуть на элемент в браузере?

    kawabanga
    @kawabanga
    vadimeasy,
    КРЫСА она) Это ответ.
    Представь, что разница в 70 лидов стоят условные 1К за лид.
    За откат в 30-50% она может и начальника обработать и группу разработчиков.

    Т.е. на ее аккаунт может заявка сразу уходить, если она проходит по параметрам (Жирная заявка). А вы пытаетесь найти способ вытащить несуществующие лиды из системы. В этом и проблема.

    Вы можете даже проверить, если ваш скрипт работает, и в среднем будет у всех 30 лидов, а у вас допустим 45, а у этой коллеги так же 100 - это будет означать как минимум то, что ваш скрипт работает. И дело тут не в скорости скрипта.

    Ответ 2
    Появление кнопки - это следствие.
    Ищите событие, которое его запускает, там либо соединение с сокетом, и вам надо будет внедриться в функцию сокета, либо в ajax проверку. Так вы сможете ускорить получение ответа.
    +
    Пинг до сервера проверяйте. 20-30мс разницы - уже громадная.
    Ответ написан
    1 комментарий
  • Какую литературу следует почитать, чтобы систематизировать все практические знания?

    Вы очень интересно описали свой путь, и мало кто проходит самостоятельно так далеко. Вопрос про систематизацию знаний - сделайте её сами, найдите в сети учебные программы IT-курсов по интересующим вас направлениям, а также вузовские учебные планы (это такие документы, где прописаны предметы, изучаемые в ходе получения образования) и содержание каждого заинтересовавшего предмета (в сети полно рабочих программ и прочих методичек), составьте себе полный список того, что можно изучить в интересующей сфере, систематизируйте эту информацию (например, по рубрикам), сопоставьте по каждой рубрике свой уровень знаний и пробелы с тем, что там имеется, определите, насколько именно эти знания необходимы именно вам и именно сейчас (может оказаться, что какие-то вопросы, в которых вы "плаваете" или даже "тонете", вам вовсе не нужны - например, математически преобразования в 3d-пространстве просчитываются на основе действий с матрицами, но зачем вам изучать линейную алгебру, если вы всего-то моделируете 3d-объекты и не занимаетесь написанием своего игрового движка?). Проработав таким вот нехитрым образом все рубрики, определите круг вопросов, которые необходимо изучить, и степень важности и срочности каждого из них (также придётся учитывать порядок изучения, например, вы всё же решитесь писать свой 3d-движок, тогда лучше начинать с матриц и операций над ними, а не с более высокоуровневых вопросов) и составьте свою индивидуальную программу обучения, и уже под каждую рубрику / тему / вопрос подбирайте литературу. В принципе, это - примерно то, чем вы занимались до сих пор самостоятельно, но в более систематизированном виде.
    "Втыкание по-быстрому" в этом случае ни к чему хорошему не приведёт, понимание должно прийти изнутри, после всестороннего изучения того, что интересно и чем хочется заниматься. Это гораздо интереснее и полезнее вузовских программ.
    Понимаю, что на поставленный вопрос напрямую не ответил (это немного из разряда "в чём смысл жизни, вселенной и всего", и ответ, как известно, "42"), поскольку ваш вопрос - из числа тех, ответы на которые приходится искать самостоятельно. Удачи вам в этом нелёгком деле!
    Ответ написан
    1 комментарий
  • Как получить диплом сред-спец образования программисту без техникума и 4 лет впустую?

    Диплом - этот документ, который подтверждает, что вы прошли определенную программу обучения и подтвердили свои знания. Здесь риторика, что вы какие-то предметы учить хотите, а какие-то нет, непрокатит. Вы либо проходите полную программу обучения и получаете диплом, либо бросаете и работаете там, где диплома у вас не спросят. Во втором случае двери в государственные учреждения вам будут закрыты однозначно. Здесь вы, вроде бы, немного теряете, но никто не знает как жизнь сложится завтра.
    В вашем случае, я бы рекомендовал получить диплом хотя бы о среднем профессиональном образовании. Пусть даже для простой формальности. Попробуйте перевестись на заочную форму обучения. Тогда вам придется приезжать на сессии два раза в год.
    Ответ написан
    Комментировать
  • Как правильно построить html разметку нумерованного списка в две колонки?

    Да, парни, че-то вы перемудрили. Все гораздо проще:
    ul {
     column-count: 2; 
    }
    Ответ написан
    Комментировать
  • Как поступить с заказчиком?

    @vism
    А заказчик то причем.
    Это ты оценил проект
    Это ты продолбал уточнения по ТЗ
    Заказчик не должен разбираться в том, как тебе ТЗ составить. Ты должен добиться верного полного ТЗ для тебя. Чтоб ты оценил верно.

    Заказчик вобще не знает что ты там делал, ему сказали цену, он согласился.

    Ты думаешь, что прав, но нет. Все это следствие твоих решений и действий. Ещё и навгокодил, раз код только ты поймёшь.
    Сделать сложно - просто, а сделать просто - сложно.
    Мало того, что хочешь кинуть заказчика, так ещё по сути всю работу зашифровал.

    Щас ты ведёшь себя как строители-кидалы. Которые берутся за ремонт квартиры/стройку дома, а посреди процесса говорят - доплачивай ещё 30% или уйдём. Уйдём = сгнивший дом.

    Вобщем если у тебя ещё осталось что-то честное и человечное, прими свою отвественность, доделай проект и дальше продумывай свои действия и решения наперёд, продумывай риски и страхуйся от них.
    Но не будь, не будь очередным кидалой, который объяснил себе почему "он прав".

    P.S.
    Если этот проект
    https://qna.habr.com/q/1159728
    То вобще стыдно должно быть от таких мыслей.
    Заказчик то ждет от вас хорошую работа наверное, а вы на нём учитесь. Вы уйдёте, а он потеряет и время, и деньги. Мде...
    Ответ написан
    Комментировать
  • Зачем надо закрывать курсор при работе с БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что курсор может потреблять ресурсы. Например вы захотели взять первые 10 строк из 10000000 выборки но предварительно отсортировали. Выбрали 10 строк и не сделали финализирующие протокольные действия в Python. База данных будет удерживать в памяти алгоритмы и структуры данных для снапшота результата этого запроса до тех пор пока не придет явный CLOSE с вашей стороны либо интеллекуальный драйвер который еще и обладает логикой уборки мусора сам не догадается что Statement уже вышел из scope вашего использования и может быть удалён GC.

    Я был свидетелем ситуации когда крупное ent-приложение Java/Oracle переполняло память из-за неверной обработки Exception и плодила много незакрытых курсоров в БД. Java от этого не сильно страдала (GC всё убирал) но страдал Oracle. Потому что уборка происходила слишком поздно. Пофиксилось тогда переписыванием с try на try-with-resources.

    Поэтому если вы неряшливо обращаетесь с курсорами (явными и неявными (обычный select к примеру может прождать неявный курсор)) то не ваше приложение а база данных почувствует себя плохо. Как быстро и какие ошибки вы будете получать - зависит от настроек вашей БД.
    Ответ написан
    Комментировать
  • Люди которые делегируют работу на фрилансе, как вы выбираете исполнителя?

    an-tar
    @an-tar
    Full stack web developer
    Фото и имя конечно должны присутствовать :), но они не являются определяющими. Пол не важен совсем.
    Отзывы и рейтинг вносит основную лепту, полезно почитать отзывы (обеим сторонам), цена также важна - хороший специалист не стоит слишком дешево. Чем больше выполненных работ с хорошими отзывами, тем лучше при прочих равных этот исполнитель.
    Но и это все может не сработать - можно встретить подающего надежды ретивого новичка, с которым комфортно работать и напротив, вредного матерого фрилансера, просто не сойдетесь характерами(неверно выстроенными дистанциями/ непроработанными требованиями и кривыми ожиданиями) и что-то пойдет не так.
    Ну и имхо в описании себя исполнитель немногословен, все по существу, его профайл и регалии говорят за него сами.
    Ответ написан
    Комментировать
  • Как будет работать система плагинов, при условии что плагины можно писать на разных языках?

    @Akela_wolf
    Extreme Programmer
    Серебряной пули нет. Поскольку каждый язык имеет свои особенности, то все не так просто.

    Поскольку речь о C++, то, я полагаю, речь идет о компилируемом в машинный код проекте. И тут, что в Windows, что в Linux, существуют динамически загружаемые библиотеки: dll и so. Собственно динамически загружаемая библиотека может быть написана на любом языке, важно чтобы она соответствовала некоторому ABI, которое определяет программа. Собственно это все что требуется от плагина. И такой плагин можно писать на C++, Pascal, Go, Haskell, Rust и даже ассемблере (вообще говоря на всем что поддерживается компилятором LLVM).

    С другой стороны находятся языки, компилируемые в байт-код. Такие как Java. Чтобы поддержать плагины на Java потребуется написать собственную подсистему, которая будет запускать JVM и оборачивать её в интерфейс плагина. Громоздко и медленно, на мой взгляд большого смысла не имеет. Если хочется писать плагины на Java, то и саму программу имеет смысл разрабатывать на Java. И тогда к вашим услугам весь спектр JVM-языков: Java, Scala, Kotlin, Groovy, Clojure, Jython.

    Аналогичная история с платформой .NET

    Плагины на скриптовых языках, таких как LUA - можно встроить интерпретатор прямо в программу (это для них родной путь)

    Ну и, наконец, отдельно стоят языки, которые "вещь в себе", такие как PHP, Javascript. С ними плагины вряд ли легко сделать, только если, аналогично JVM/.NET делать "обертку" над средой выполнения. Но опять же, большого смысла не имеет.
    Ответ написан
    2 комментария
  • Как класть товар в корзине с разными опциями?

    @kalapanga
    Это скорее вопрос не столько реализации корзины, а организации собственно справочника номенклатур. Ничего нового тут нет. Что ботинки разных размеров продавать, что пиццы. Можно считать разные размеры разной номенклатурой, а можно ввести какие-нибудь "типы" или "категории" номенклатур. Дело вкуса, делают и так и так.
    А вот добавки я бы считал просто отдельными номенклатурами. Так как "Ананас" за 59 рублей он что к одной пицце, что к другой - всё тот же ананас! Для удобства я бы их выделил в отдельную группу, позиции из которой не предлагаются в основном прайсе (где сами пиццы), а только после выбора основной позиции.
    В корзину добавляется товар из основной группы (пицца), затем предлагается добавить товары из другой группы (добавки - грибы, ананасы и т.д.)
    Ответ написан
    1 комментарий
  • Как правильно вставлять большие изображения на страницу?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    чтобы картинка подстраивалась под размеры данного блока

    Если это фон: background-size
    Если img, то object-fit

    Как правильно вставлять большие изображения на страницу?

    Уменьшить до нужного размера. Понятно, что при адаптиве картинки все равно не будут равны размерам блока, но постараться использовать разумные размеры.
    И соответственно, для ретины и разных размеров вьюпорта, либо тег picture для контентных либо media для фоновых.
    Ответ написан
    Комментировать
  • Почему ломается пагинация в Laravel 8?

    В 8-ой Ларе пагинатор теперь работает на Tailwind CSS. Поэтому, нужно его подключить. Если же хочешь использовать бутсраповский пагинатор, то надо его подключить, а в AppServiceProvider написать
    Paginator::useBootstrap();
    Ответ написан
    Комментировать
  • Для каких примерно целей программисту нужен computer science?

    bingo347
    @bingo347
    Crazy on performance...
    Ну начнем с того, что computer science - это очень широкое понятие, которое включает в себя множество различных областей, как теоретических так и практических. Вопрос "нужен ли программисту computer science?" из той же оперы, что и "нужна ли программисту математика?", кому-то и арифметики хватает (а это тоже математика как не странно), а кому-то нужен углубленный бэкграунд в мат.анализе, тер.вере и мат.статистике. Так же и с computer science, кому-то хватит базового понимания, почему 0.1 + 0.2 != 0.3, а кому-то нужен углубленный бэкграунд в алгоритмы, в теорию типов и в слабые модели памяти. Все сугубо индивидуально и сильно зависит от сферы, для которой ведется разработка.
    Многим совсем не обязательно знать как реализуются те или иные алгоритмы или структуры данных, вполне можно пользоваться готовыми. Но вот иметь представление, какие вообще бывают алгоритмы и структуры данных, какая у них алгоритмическая сложность - это полезно всем, просто чтобы знать что гуглить и какие вообще есть возможности решить ту или иную задачу. Так же полезно уметь считать ту самую алгоритмическую сложность из составных частей произвольного алгоритма и понимать чем отличается нотация O-большое от нотации Ω-большое. Какая от этого практическая польза? Для самого программиста - это возможность решать задачи проще и быстрее, выдавая при этом более оптимальные решения. Для бизнеса - это деньги, от банального "ускорив некое действие в N раз мы повысили конверсию в M раз", до насущного "сократив потребление ресурсов на N в прошлом месяце мы заплатили за облако на M млн. рублей меньше в этом месяце при той же нагрузке".
    Та же архитектура, всем не обязательно уметь строить огромные решения с запасом прочности на десятки лет. Но понимать базовые принципы и паттерны, какие у них плюсы и минусы, где и что применять - полезно. К сожалению здесь все плохо в большинстве своем, порой доходит до того что стоимость поддержки небольшого проекта вырастает в 300-500 раз всего лишь за год поддержки. Для бизнеса это опять таки деньги, и если бизнес не планирует через год-другой либо продаться либо свернуться, как делают многие стартапы, то бизнес будет это оптимизировать. А на программистах такая оптимизация скажется на прямую, те кто умеет писать код на года будет получать выше рынка, иногда значительно. Хотя и те кто вообще в архитектуре не шарит без работы не останутся, так как работодателей с принципом "продали и забыли" просто банально больше.
    Ответ написан
    Комментировать
  • Где найти книги или курсы по PHP, где даётся проектирование приложений с учётом ООП?

    DollyPapper
    @DollyPapper
    Их не нужно сравнивать. Эти подходы дополняют друг друга. Внутри методов класса ты как ни крути пишешь процедурный код.
    Ответ написан
    Комментировать
  • Все говнокодеры?

    DevMan
    @DevMan
    в основном так и есть.
    бизнесу насрать на наши модели и архитектуру, ему надо деньги делать и ещё вчера.

    если вылизывать архитектуру со старта - никогда не взлетишь. а когда и если взлетишь, поляна будет уже засеяна другими, которые срать–плевали на красоту кода.

    это итеративный процесс: сначала столбим делянку как-нибудь (MVP), затем так и живём или приводим её в порядок.
    Ответ написан
    Комментировать