• Странности с CSS и слоями - почему так происходит?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Думаю тут прикол с прозрачностью, как бы странно это не звучало, вот пример:
    https://codepen.io/wokster/pen/OwbYrK
    поробуйте убрать 1-е css привило
    div:first-child {
      opacity: .99; 
    }

    Казалось бы opacity, а нет. Вот разъяснение:
    https://habr.com/post/166435/
    Ответ написан
    3 комментария
  • Какой самый оптимальный провайдер интернета без фильтрации контента, если такие ещё есть?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Нет.

    То, что Вы называете "фильтрацией" - это обязанность провайдера (по крайней мере, в РФ - точно, в РБ и РК - точно не скажу, но скорее всего тоже есть). Обязанность эта заключается в выполнении решений суда по блокировке доступа к такому-то ресурсу и не выполнить его он не может. Иначе отберут лицензию и все - аля улю,

    Сами по себе (по своей инициативе) провайдеры контент не фильтруют (хотя тут иногда рассказывают про недо-провайдеров местечкового уровня, которые этим бывает занимаются, непонятно правда зачем).

    Насчет VPN - это Вы сами смотрите
    Ответ написан
    3 комментария
  • Как бороться с конфликтующими версиями, откуда они вообще берутся?

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

    Папка Dropbox на компьютере — это не обычная папка Windows. Файлы и каталоги в ней каким-то образом индексируются. Т.е. файл помимо имени и других атрибутов файловой системы, имеет какой-то свой "дропбокс-идентификатор". Дело в том, что например при переименовании файла, для Дропбокса он остаётся тем же файлом. Перменование для него — это переименование, а не удаление одного файла и появление совершенно нового с другим именем. В последнем бы случае Дропбоксу подабоилось бы по-новому его закачикавать к себе целиком, что очевидно не происходит.

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

    Вывод-рецепт такой: Нельзя копировать файлы, которые должны быть синхронны, между разными устройствами в обход Дропбокса! Придётся на новом устройстве установить Дропбокс, назначить ему папку и ждать, пока он в эту папку насосёт файлы из облака. Ни в коем случае не наливать файлы самому.
    Ответ написан
    2 комментария
  • Дает ли .net/java преимущества для небольших веб-сервисов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Планируется разработка пульта управления
    это "рычаги" для управления "двигателем".

    отложенный постинг, формирование постов, мониторинг конкурентов, работа с изображениям и видео, итд
    это сам "двигатель", который реализуется микро-сервисами.

    Ваш вопрос про "рычаги".

    Если задачи "двигателя" требуют высокой скорости исполнения - это микросервисы, которые реализуются (как правило) на C и запускаются как демоны в ОС.
    Иначе - не важно на чём создавать: разницы и прироста производительности не увидите.

    PS: Многое зависит от корректной логики реализуемого алгоритма, правильного кеширования и индексирования обрабатываемых данных!
    Ответ написан
    5 комментариев
  • Как грамотно написать интерпретатор?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Открывай исходники штатного (nashorn, rhino) интерпретатора js в яве и читай\смотри как сделано. Кроме того в самой яве есть полноценный апи для сторонних скриптовых языков а кним и примеры.
    Ответ написан
    3 комментария
  • Как грамотно написать интерпретатор?

    1. Как в рантайме правильнее разграничить вызов нативных (реализованных на Java) функций и вызов функций на JavaScript (это весьма разные сущности)?

    Ну сделай разные классы для разных функций. JS динамически типизированный, так что в основном ты все равно будешь работать с каким-нибудь базовым абстрактным JsValue, от него и унаследуй классы функций. У класса JsValue сделай метод

    JsValue call(scope: JsScope, context: JsValue, args: ArrayList<JsValue>)

    который кидает TypeError: бла-бла-бла is not a function, а в классах функций (JsNativeFunction и JsFunction) переопредели его чтобы возвращал что-то.

    2. Как оптимальнее хранить scopes? Через Hashtable/HashMap в виде вектора (имитация стека) - нормальное решение?

    Я не эксперт, но я делал скоуп в виде хешмапа со ссылкой на родительский скоуп (и так по ссылкам можно было соответственно дойти до глобального скоупа), вроде нормальный вариант.

    3. Как правильно организовать поиск функций в цепочке прототипов объекта? Например, мы ищем функцию; она находится в прототипе, ссылку на который мы храним. Но при вызове такая функция должна работать с полями данных исходного объекта, а не прототипа, или прототипа прототипа и т.д. В JavaScript всё будет в такой ситуации работать корректно, а как такое грамотно эмулировать?

    Не вижу проблемы. x.foo(42) разворачивается во что-то типа этого:

    JsObject xVar = scope.getVar("x");
    xVar
        .attr("foo")    // ищет атрибут в объекте или в прототипе
        .call(scope, xVar, Arrays.asList(JsInt(42)));

    Второй параметр метода call - это и есть контекст, то есть объект у которого вызывается метод.

    4. Эффективный алгоритм разбора выражений тоже не помешал бы. Как быстро разобрать строку, зная приоритеты операторов, корректно выделить все круглые скобки, которые могут быть вложены друг в друга, и т.д. Ссылки на любую литературу, в том числе англоязычную, приветствуются.

    Тут вряд ли что-то толковое подскажу, кроме как посмотреть в сторону ANTLR и аналогов.

    P. S.
    Немного литературы по теме
    Ответ написан
  • Как организовать приватные диалоге в "чате" на java?

    @yaror
    10 лет в мобильном телекоме
    Ввести понятие идентификатора пользователя и соответствующее ему поле.
    Если сервер во входящем сообщении это поле увидел, сообщение он перешлёт не всем разом, а только указанному пользователю.
    Ответ написан
    1 комментарий
  • Как грамотно написать интерпретатор?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Собственно классика - Книга красного дракона
    Ответ написан
    Комментировать
  • Логично ли данное ООП поведение в javascript и отличается ли оно от c++ и java?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Всё дело в том, что this в A.foo ссылается не на A, а на инстанс B. А поиск метода идёт по цепочке прототипов, начиная сверху, поэтому до A.bar никогда не доходит.
    Рассуждать, логично это или нет, бессмысленно - это просто так и нужно принять такое поведение, понять его и использовать.

    И нет, в Java и C++ поведение не такое. Вообще, в javascript наследование прототипное и есть закидоны особенности с контекстом вызова, поэтому привычное из других языков понимание ООП в нём не всегда работает.
    Ответ написан
    1 комментарий
  • Логично ли данное ООП поведение в javascript и отличается ли оно от c++ и java?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Вы так говорите, будто существует какое-то эталонное ООП, хранящееся в палате мер и весов в Париже. ООП -- это несколько принципов, которые можно трактовать по-разному (Алан Кей, ЕМНИП, сказал: "Я изобрел термин ООП, но я не имел ввиду C++"). В JS вообще классов не было до недавнего времени, да и сейчас это тонкий слой синтаксической сахарной пудры над прототипами.

    Когда мы в JS обращаемся к свойству объекта, то движок сначала ищет это свойство в самом объекте. Если свойство не найдено, то идем в объект, который записан как прототип этого объекта, и ищем в нем. Повторяем этот шаг, пока не найдем свойство или не дойдем до Object.
    Когда мы вызываем метод объекта через точку (типа b.bar()), то он выполняется в контексте этого объекта b. super.foo() пропускает первый шаг в поиске свойства, берет метод сразу из прототипа прототипа и тоже выполняет его в контексте b. А в контексте b метод bar у нас переопределяет родительский метод, поэтому у нас получается бесконечная рекурсия, которая насильно обрывается движком.

    Что должно быть в Java/C++ я вам не подскажу, к сожалению. Возможно, там будет поведение, которое вы ожидаете.
    Ответ написан
    Комментировать
  • Авторизация в ВК через cURL в обход API?

    ilyachase
    @ilyachase
    web-developer
    В свое время тоже на это наткнулся.
    Использовал мобильную версию сайта для авторизации - там всё ОК было.
    m.vk.com
    Ответ написан
    1 комментарий
  • Как правильно делать дизайн и верстать под retina дисплей?

    rsvetlitskiy
    @rsvetlitskiy
    UX/UI designer, researcher and almost a developer.
    • Забыть о фиксированных величинах, то есть про px и использовать % по максимуму.
    • Использовать svg вместо png, или увеличивать размер png
    • Применяя media queries определять экраны с высокой плотностью пикселей и заменять изображения на увеличенные в 2 раза. Можно для этих целей применить javaScript, можно заюзать retina.js
    Ответ написан
    3 комментария
  • Является ли это нарушением авторских прав?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Нарушение закона о рекламе, нельзя сравнивать с конкретной маркой. Не просто так Тайд замазывает стиральные порошки конкурентов :)
    Ну и потом, как они заметили, вы используете их товарный знак, срок регистрации его опустим.
    Ответ написан
    Комментировать
  • Возможно ли работать на одной операционной системе используя 2 компьютера одновременно?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Ну...теоретически да. Если имеется в виду распараллеливание вычислительной мощности, а не "у одной крутой проц, у второй - аще видюха". Но это должны быть специально написанные приложения, обычный фото#оп так работать не будет. Это как с многопоточнстью и многоядерностью - если у тебя в компе 16-ти ядерный проц, это вовсе не значит, что любое приложение будет работать в 16 раз быстрее - некоторые могут работать медленнее. Почему? Потому что умеют использовать только одно ядро, и если оно по параметрам хуже прежнего - опа!
    Ответ написан
    Комментировать
  • Возможно ли работать на одной операционной системе используя 2 компьютера одновременно?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    То, что вы описываете, называется кластер.
    Но для работы в кластере, приложения должны быть специальным образом написаны, понимая что они будут работать на распределенных системах. Конкретно автокад и фотошоп так не смогут.
    Ответ написан
    Комментировать
  • Как сделать выборку "И" и "ИЛИ" на MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Зависит от того, уникальна пара (user_id, tag_id) или нет.
    Для уникальных всё просто
    SELECT `u`.*
      FROM `users` AS `u`
      JOIN `user_tags` AS `ut` ON `ut`.`user_id` = `u`.`id`
        AND `ut`.`tag_id` IN (1, 2, ..., N)
      GROUP BY `u`.`id`
      HAVING COUNT(*) = N


    Для неуникальных добавляется DISTINCT
    SELECT `u`.*
      FROM `users` AS `u`
      JOIN `user_tags` AS `ut` ON `ut`.`user_id` = `u`.`id`
        AND `ut`.`tag_id` IN (1, 2, ..., N)
      GROUP BY `u`.`id`
      HAVING COUNT(DISTINCT `ut`.`tag_id`) = N
    Ответ написан
  • Не работает usort?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    В вашей функции reorder входящие данные - переменная $matches
    Но, увы и ах, функция ничего не возвращает.
    Исходя из этого, выполняя функцию reorder вы добиваетесь ровным счетом ничего.

    И не надо пожалуйста спорить со мной о том что код правильный и все так и должно быть, проходили. Просто послушайтесь совета - добавьте return $m в функцию, и записывайте результат работы функции в переменную.
    Ответ написан
    5 комментариев
  • Заказчик игнорирует. Браться за новый проект?

    @malbaron
    Заказчик может быть в больнице или т.п.
    Вполне уважительная причина.

    Но с другой стороны - тебе же кушать нужно каждый день, а не через день.
    Я бы взял уже другой.

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

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Если мы говорим именно о адаптивной версии (не тупо резина) - то однозначно рисуются отдельные версии дизайна под N поддерживаемых разрешений, дальше это все верстается.
    Число N субъективно, от 2 (десктоп, мобайл) через бутстраповские 4 и до до скольки угодно (под все основные разрешения клиентов)
    Ответ написан
    Комментировать