• Как создать платную лицензию для программы на C++?

    @EDIsaev
    Даже если вы разработаете "идеальную" защиту, она работает до первой покупки, при попадании ключа в нужные руки вся защита снимается, а потратить на её разработку можно годы!...
    А простенькую защиту от "дурака" вам в первом ответе описали.
    Ответ написан
    Комментировать
  • Мощный светодиод крепится к радиатору на термоклей или на припой?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    клей
    если паять(да обычным припоем≈200℃), запросто можно убить :(
    на сколько я помню, допускается нагрев <3-4сек ≈220-230℃
    Ответ написан
    Комментировать
  • Мощный светодиод крепится к радиатору на термоклей или на припой?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Радиатор во-первых алюминиевый, а во-вторых - хорошо отводит тепло - поэтому нужно сильнее греть.
    Поэтому даже если найти припой который паяет алюминий, и очень хорошо разогреть радиатор, - то кристалл светодиода при пайке к радиатору очень быстро привет пожелает напоследок...
    Ответ написан
    Комментировать
  • Компьютер зависает намертво, из-за чего может быть?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    SSD M.2 NVMe:Apacer

    Посмотрите SMART у ССД. Он и под подозрение попадает и проверяется быстро. Можно Р.тестером: https://rlab.ru/tools/rtester.html или другой утилитой, которая работает с НВМе.

    Хотя сюрпризы могут быть и менее очевидными - как я понимаю, у вас мат. плата с Али, и, возможно, память оттуда же. Полноценная диагностика, как минимум, м/п может оказаться сродни квесту.

    UPD:
    В гугле по номеру модели за несколько кликов нашёл вот такой отзыв на SSD Apacer: ssd-apacer-otzyvy.png
    Ответ написан
    3 комментария
  • Что такое кластерный индекс в mysql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Кластерный индекс... это на самом деле понятие крайне виртуальное.

    Что такое обычный некластерный индекс? берём выражение индекса, считаем его значение для каждой записи, сортируем и пишем на диск. Получаем отдельную структуру, в которой выражение индекса сортировано. Когда потребуется искать заданное значение этого выражения, мы вместо просмотра от записи к записи сразу половинным делением быстренько найдём нужное значение, возьмём из него уникальный идентификатор записи, и обратимся за записью. Если в таблице 1000 записей, то для поиска заданного значения без индекса нам в среднем пришлось бы просмотреть 500 записей, а с индексом - всего 10.

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

    В MySQL (точнее, в используемом по умолчанию движке InnoDB) первичный индекс, во-первых, существует ВСЕГДА, во-вторых, определяется так (в статье, на которую дали ссылку, имеются неточности в пункте 2):
    1. Если первичный ключ задан явно, то его выражение является также и выражением кластерного индекса. Или иначе - первичный ключ и есть кластерный индекс.
    2. Если первичный ключ явно не задан, но в таблице имеется индекс, отвечающий всем следующим требованиям:
      • является уникальным
      • не является функциональным, в т.ч. не использует в выражении вычисляемые поля
      • не использует в выражении поля, которые определены как допускающие значение NULL

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


    Выглядит так, как будто это просто физическая сортировка данных по индексируемому полю.

    Фактически - именно так.

    Создаётся ли отдельная таблица или просто упорядочивается хранение существующих данных?

    Не создаётся. Но при изменении первичного индекса таблица полностью пересоздаётся с новым физическим порядком записей.

    Если данные упорядочиваются этим индексом, допустим по ID, то почему при select без сортировки данные могут возвращаться в произвольном порядке, а не отсортированные по ID по-умолчанию?

    Если не задан явно ORDER BY, сервер имеет право вернуть записи в любом порядке, как ему удобнее. В большинстве случаев, но не всегда, он будет возвращать записи в порядке чтения с диска...

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

    ===

    PS. Кстати, правило выбора индекса, который будет использоваться в качестве кластерного, имеет неприятный побочный эффект. Если у некоторых полей, входящих в какие-то индексы, изменяется свойство NULLability, то это может привести к изменению того, какой из имеющихся индексов станет использоваться в качестве первичного по пункту 2. В результате мы получим невозможность использования INSTANT / INPLACE методов, и будет использован длинный COPY. Впрочем, ситуация такая крайне редка.
    Ответ написан
    2 комментария
  • Что стоит использовать для защиты 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();
    Ответ написан
    Комментировать