• Как сделать квадратные скобки?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    :after, :before
    Ответ написан
    Комментировать
  • Почему не добавляется ещё один LEFT JOIN?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ... WHERE city_id = 4019 LEFT JOIN ...
    После WHERE не может быть JOIN'ов.
    Ответ написан
    5 комментариев
  • Как перенести каждое 3-е слово на новую строку с помощью jquery?

    0xD34F
    @0xD34F Куратор тега JavaScript
    $('.break-word').html((i, html) => {
      const [ a, b, c ] = html.split(' ');
      return `${a} ${b}<br>${c}`;
    });

    или

    document.querySelectorAll('.break-word').forEach(n => {
      n.innerHTML = n.innerText.replace(/(.+ .+) /, '$1<br>');
    });
    Ответ написан
    1 комментарий
  • Как определить, попадает ли точка в заштрихованную область?

    @Cheypnow
    Записываешь функцию, по которой строятся линии, между которыми надо проверить лежит ли точка.
    Подставляешь X точки в функцию, вычисляешь Y для этой функции.
    Сравниваешь с Y точки. Если они равны, точка лежит на линии, если нет, лежит выше или ниже соответственно.
    И просто выставляешь необходимые условия проверки, как должна лежать точка, выше или ниже заданных линий.
    Ответ написан
    Комментировать
  • Должен ли я быть ИП в 13 лет и платить налоги?

    Beshere
    @Beshere
    Разработчик
    Тут парадокс. Если по аналогии с налогом на имущество. Налоги платить должен, но не может. За него должны заплатить родители.

    А вообще респект, я в 13 лет читал Стругацких и готовился к коммунизму.
    Ответ написан
    Комментировать
  • Почему n^3 работает быстрей чем 2^n?

    @Mercury13
    Программист на «си с крестами» и не только
    Одно из двух.
    А. O(n³) и O(2n) — сложность каких-то алгоритмов.

    Читайте определение символов Ландау, и будет всё понятно.
    n³ = o(2n) при n→∞, что означает:

    lim{n→∞} n³ / 2n = 0.

    Что означает: при безграничном повышении n алгоритм, работающий за n³, будет иметь всё большее и большее преимущество перед конкурентом.

    Б. n³ и 2n — функции, которые нам надо вычислить.

    Сложность первой O(1) (всегда два умножения), сложность второй в общем случае — O(log n) (из-за того, что логарифмы от разных оснований отличаются на константу, а константу символы Ландау не учитывают, основание логарифма не пишут).

    UPD. Что значит «в общем случае»? Оценку могут увеличить различные второстепенные алгоритмы вроде выделения памяти и преобразования в десятичный вид, и уменьшить — то, что 2n можно вычислть сдвигом. Не забудьте, что сложность алгоритмов определяется при n→∞.
    Ответ написан
    Комментировать
  • Зачем IT гиганты используют много несвязанных доменов?

    Поместив HTML, XML, SVG и т.д. и т.п. файл на домене usercontent.google.com можно
    манипулировать куками домена google.com и фишить. Поэтому пользовательский контент всегда отдается с отдельных sandbox-доменов.
    Так же с отдельных доменов обычно отдается статический контент, это позволяет использовать CDN и упрощает управление кэшированием.
    Отдельный домен обычно используется для PTR-записей (например 1e100.net). Для PTR часто нужна двойная валидация, т.е. PTR должна разрешаться в имя и имя обратно в тот же IP. При этом на одном IP может хоститься много доменов и быть установлено много сертификатов, включая вайлдкарды. И наоборот, один домен может хоститься на многих IP. Чтобы исключить прямое обращение к хосту по "неожиданному" для него имени в своем домене, обычно используются PTR записи в нейтральном домене. Кстати исторически принято использовать именно домены в .net. Google так же использует 1e100.net как нейтральный домен для подписи транзитных писем, раньше для этого использовался собственно домен google.com и это приводило к забавному багу, позволявшему подделывать подписи на письмах от google.com, я рассказывал о нем на PHDays 2014.
    Географические домены исторически используют для организации региональных датацентов и ускорения доступа, например yahoo.jp физически расположен в Японии.
    Ответ написан
    6 комментариев
  • Кто как укладывает бизнес правила в БД?

    2ord
    @2ord
    Таблица принятия решений (таблица решений) - очень эффективное решение для такого рода задач.
    Из русской Википедии:
    Таблица принятия решений (таблица решений) — способ компактного представления модели со сложной логикой. Аналогично условным операторам в языках программирования, они устанавливают связь между условиями и действиями. Но, в отличие от традиционных языков программирования, таблицы решений в простой форме могут представлять связь между множеством независимых условий и действий.

    5a15e62220a7b529500711.png
    На английском - Decision table - можно найти гораздо больше полезного материала, чем на русском. Допустим, это видео с объяснением.
    Таблицы можно хранить в СУБД и обмениваться при помощи CSV.
    IBM и многие другие компании применяют их в разных своих продуктах. Особенно полезны для описания деятельности бухгалтерии, складского учета и пр.
    Ответ написан
    3 комментария
  • Где найти рассказ про хакера?

    dok2d
    @dok2d Автор вопроса
    Сисадмин, делаю сайты разной паршивости
    Нашёл!
    Автор: mindw0rk
    Рассказ: Незнакомец по ту сторону сети
    Рассказ не длинный.
    Ответ написан
    6 комментариев
  • Вопрос по статье на Хабре про триггеры - могут ли гарантировать триггеры целостность данных?

    Melkij
    @Melkij
    PostgreSQL DBA
    но как переменная current_amount попадет внутрь триггера?

    Автор статьи не стал вдаваться в детали какой-либо СУБД, поэтому уточняйте в документации к своей СУБД.
    Для for each row триггеров обычно можно читать из NEW.amount в after insert триггерах.
    Для for each statement - смотрите документацию к своей СУБД.

    либо ограничить инсерты\апдейты (разрешив их только вызовами изнутри sql-сервера), но мне кажется, что sql-сервер не позволяет добавлять такие ограничения на таблицы

    Смотрите опять же документацию к своей СУБД.
    Для postgresql такую модель прав сделать можно. Для этого необходим отдельный пользователь для деплоя приложения (вообще полезная штука всегда) и security definer триггер.

    могут ли гарантировать триггеры целостность данных?

    Могут, но бывают сюрпризы. Например, mysql вам не запретит из триггера на ACID табличке что-то делать с myisam. Последующий rollback транзакции по любой причине = у вас потеря целостности. Впрочем, если вы знаете о целостности данных - то вы и не станете использовать всякое myisam.
    Ответ написан
    Комментировать
  • Зачем делают вот такую конструкцию?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Собственно php и любой другой язык подключается под сто раз внутри разметки. Зачем?

    чего вдруг 100 раз? 1 раз интерпретатор запустился, выполнил документа, забросил данные в opcache и в следующий раз уже с оперативки вытащит.
    Затем, что php так спроектирован, и для такого использования он хорош.
    Ответ написан
    Комментировать
  • Как работает 1170 сетка бутстрап?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Если честно не совсем понимаю, что за 15 пикселей с каждой стороны сетки от 1170.
    Не могу сказать на 100%, но по моему, это обычные "отступы колонки", с каждой стороны. Т.е. расстояние между колонками соотв. должно быть 15+15px, т.е. 30px.

    Для чего эти паддинги по бокам?
    Это почти риторический вопрос... Но, авторы сетки определенно видели в этом какой-то смысл. Как один из вариантов - что бы контент не "прилипал" к краям дисплея на устройствах с маленьким разрешением, напримр на мобильных.

    Дело в том, что я уже много лет в фотошопе и скетче рисую по сетке 1170 без учета этих паддингов.
    Тут два основных варианта для конечного исполнителя:
    1. Собрать страп-сетку под свои/Ваши нужды, страп-сетка легко кастомизируется, включая примерно все её параметры, от разрешения и ширины колонок до...
    1.1 Убрать эти padding'и с помощью CSS'а, заменив пару соотв. свойств
    2. Не использовать страп-сетку или использовать какую-то другую сетку :)
    Ответ написан
    3 комментария
  • Как написать запрос для поиска совпадений в одной таблице?

    qonand
    @qonand
    Software Engineer
    SELECT 
        think_id, 
        count(*) as cnt 
    FROM 
        tablename 
    GROUP BY 
        think_id 
    HAVING 
        cnt > 1
    Ответ написан
    Комментировать
  • Как наиболее точно сравнить две строки?

    adugin
    @adugin Куратор тега Python
    Пример решения с использованием стандартной библиотеки difflib:
    from difflib import get_close_matches as gcm
    
    model = 'A 170 Classic - 7/2004 - 85Kw'.upper()
    model_list = map(str.upper, [
        'A 170 CDI CAT ELEGANCE',
        'A 170 CDI CAT CLASSIC',
        'A 170 CDI CAT AVANTGARDE',
    ])
    
    result = gcm(model, model_list, n=1, cutoff=0.5)[0]
    
    print(result)  # => 'A 170 CDI CAT CLASSIC'

    Также посмотрите в сторону difflib.SequenceMatcher().ratio(), это имеет прямое отношение к cutoff в примере выше:
    from difflib import SequenceMatcher as SM
    
    s1 = 'A 170 Classic - 7/2004 - 85Kw'.upper()
    s2 = 'A 170 CDI CAT CLASSIC'.upper()
    
    SM(isjunk=None, a=s1, b=s2, autojunk=True).ratio()  # => 0.52

    Теория: Расстояние Левенштейна
    Ответ написан
    3 комментария
  • По каким причинам на фрилансе не всегда побеждает самая дешёвая ставка?

    Это "что-то еще" - причина, по которой ты покупаешь вино не за 200₽, а за 1500₽, или стараешься избегать акций на скоропортящиеся продукты.

    Но у русских проблема с видением связи между ценой и качеством
    Ответ написан
    4 комментария
  • Зачем работать с базой ORACLE только через процедуры?

    @Sumor
    Если проект простой, то конечно удобнее из клиентского приложения вызывать SELECT, UPDATE и INSERT.
    Но как только проект становится достаточно большим, или накладываются дополнительные ограничения на безопасность, то удобнее вынести часть бизнес-логики на сервер. В данном случае - на хранимые процедуры.
    Плюсы следующие:
    1. Хранимые процедуры и клиентское приложения могут писать разные люди (команды), с разной подготовкой. Хранимые процедуры - боле опытные, клиентское приложение - более неопытные.
    2. Хранимые процедуры могут обеспечить дополнительный уровень безопасности. Часть проверочной логики может быть реализовано на сервере. И клиентское ПО даже изменив или подделав вызовы не получит не принадлежащие им данные. Если вся логика приложения реализована на клиенте, то злоумышленник может переписать запросы и получить не принадлежащие ему данные. Помимо этого от клиентского ПО скрывается структура БД.
    3. Хранимые процедуры, как неинтерактивные модули, проще отлаживать и тестировать в автоматическом режиме.
    4. Написанные хранимки меньше, чем клиентское ПО, подвержены изменениям в ходе эволюции и активно повторно используются в разных клиентских модулях.
    Ответ написан
    Комментировать
  • Почему it конференции такие дорогие?

    dom1n1k
    @dom1n1k
    Я подозреваю, это в первую очередь такой фильтр для публики. Орги просто хотят отсеять студентов и привлечь представителей серьезных компаний и так далее. Ну то есть высокая цена в первую очередь задаёт формат. А уж потом окупает фуршет и аренду зала. Хотя пригласить серьезного докладчика - тоже недешевое удовольствие.
    Ответ написан
    1 комментарий
  • Как сервер определяет что браузер закрыт (сессия)?

    Stalker_RED
    @Stalker_RED
    Когда вы закроете браузер вот эти вот куки будут удалены. По их отсутствию сервер и определит.
    yNGCPiK.png

    Можно настроить браузер (или поставить плагины) которые будут сохранять текущие сессии. В хроме я использую session buddy, в фоксе тоже как-то работает, может TabMixPlus это делает, может какая-то галка в настройках, не помню уже.
    Ответ написан
    Комментировать
  • Почему многие современные сайты верстают на флексах?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    очень часто вижу такое мнение что построение сеток на основе "float" или "inline-block" лучше, потому что флексы поддерживаются не всеми браузерами. Так ли это и почему в таком случае они так популярны?
    Это действительно так. Но я Вам больше скажу, даже CSS как таковой (или HTML-5), поддерживается не всеми браузерами (IE-1 насколько я помню, CSS не поддерживал). Но я не думаю, что это повод отказаться от CSS или HTML5. И вообще, само по себе выражение "не всеми браузерами" - довольно размытое, что-то из области "не все продукты одинаково полезны".

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

    P.S. А ещё по тому, что FLOAT'ы были придуманы изначально не для того, для чего их в последствии приспособили, впрочем как и некоторые другие параметры/свойства/атрибуты...
    Ответ написан
  • Что можно дописать в запрос что бы получить результат?

    denman1985
    @denman1985
    SQL, Oracle Forms/Reports dbd
    SELECT SUM(bonus), nlevel(tree) - nlevel('2.383') AS level
    FROM "user" 
    INNER JOIN "bonus_item" 
    ON user_from = "user".id 
    AND user_to = 383
    WHERE (tree ~ '2.383.*{0,5}') 
    AND ("mounth" = '9:2017')
    GROUP BY nlevel(tree) - nlevel('2.383')
    order by nl;
    Ответ написан
    Комментировать