• Blur содержимого под блоком - как реализовать?

    Ni55aN
    @Ni55aN
    CSS такого делать не умеет. Помню, когда то находил реализации под Safari, но дальше iOS это не пошло. Поэтому единственный вариант:
    продублировать все что в фоне и размыть. Достаточно легко реализуется для фона-картинки, и почти нереализуемо для всех возможных элементов, так как все что в фоне нужно повторно добавить в нужный блок, обрезать, размыть, и при этом нужно соблюдать чтобы все совпадало

    jsfiddle.net/SvH6w/6
    Ответ написан
    Комментировать
  • Как понять замыкания, а в частности, присвоения вида fn = function()?

    Ni55aN
    @Ni55aN
    Почему первый не работает? Там все как надо:
    при вызовеcreateCounter()инициализируется numberOfCallsсо значением 0 и возвращается функция, которая "видит" эту переменную. В дальнейшем вызове этой анонимной функции она все так же будет видеть numberOfCalls.

    В первом случае при вызове createCounter заново каждый раз создается переменная с 0
    Во втором случае при вызове fn()одна и та же анонимная функция использует одну и ту же переменную numberOfCalls
    Ответ написан
    2 комментария
  • Почему setState не работает, возникает ошибка?

    Ni55aN
    @Ni55aN
    В конструктор добавить:
    // This binding is necessary to make `this` work in the callback
    this.handleSearchs = this.handleSearchs.bind(this);


    Источник: https://reactjs.org/docs/handling-events.html

    П.С. Хотелось бы добавить вопрос к опытным в React'е:
    это похоже на хак/костыль, или это нормальная практика?
    Ответ написан
  • Как интегрировать C++ OpenGL приложение в React Native?

    Ni55aN
    @Ni55aN Автор вопроса
    React Native в этом плане удивил)) Удалось вставить нативный GLSurfaceView без каких-либо проблем.
    Github@React-native-OpenGL-native-example

    Есть пример в ветке minimal с простым Renderer'ом, а в master уже с .so библиотекой, которая собрана когда-то проверенным способом

    Итог: React Native без проблем взаимодействует с нативной частью и позволяет не только манипулировать простыми данными, но и встраивать нативные элементы
    Ответ написан
    Комментировать
  • Какой алгоритм использовать для нахождения (x,y) концов линий или их пересечения?

    Ni55aN
    @Ni55aN
    Использовать один из feature detector.

    Думаю, FAST подойдет
    Ответ написан
    Комментировать
  • Хватит такой ноутбук Aser aspire 5253G для верстки?

    Ni55aN
    @Ni55aN
    Из своего опыта помню, что ноут с такими характеристиками с "почти" незахламленной виндой даже видео в HD не может плавно воспроизводить, что уже говорить о многозадачности и анимаций в тяжелых лендингах.

    Как уже сказали, FullHD, от 6 ГБ и не ниже i3
    Ответ написан
    Комментировать
  • Уменьшить шум на фото?

    Ni55aN
    @Ni55aN Автор вопроса
    Удалось добиться удаления шума не повредив при этом важные детали.
    Методом проб и ошибок (не спрашивайте о последовательности действий :) ), используя фильтры Стабилизация изображения, Медиана, Пыль и царапины, получил почти то что нужно, за исключением того, что местами появляются белые артефакты при усилении резкости и эффект масляных красок
    59d0ddfcd3ceb952078252.png59d0decd9163e005541002.jpeg
    Ответ написан
    Комментировать
  • JS библиотека для обработки и процедурное генерации изображений?

    Ni55aN
    @Ni55aN Автор вопроса
    Так и не удалось найти подходящей, тем более требования увеличились (что касается быстродействия).

    Подготовил дебютную версию своей библиотеки texturity.js, которая проводит рисование через WebGL (что несравнимо с обычным Canvas) и работает в одном контексте, что позволяет без каких либо задержек рисовать на разных экземплярах Texturity.Canvas
    Ответ написан
    Комментировать
  • Какой редактор UML выбрать?

    Ni55aN
    @Ni55aN
    Visual Paradigm, но она платная (хотя раньше был триал, который легко сбрасывался, сейчас не знаю как там).

    Можно более универсальный использовать - draw.io, но там нету каких-либо проверок на связи, там все простые графические компоненты (зато свободы больше). Что касается детализации модулей, то можно к блоку добавить ссылку на страницу
    Ответ написан
    3 комментария
  • Какой ноутбук лучше для разработки (выбор между видеокартой и процессором)?

    Ni55aN
    @Ni55aN
    Первый должен быть пошустрее за счет SSD, но тут еще главное отличие - размеры и вес. Думаю, в первую очередь стоит от них отталкиваться.
    Хотя A9 против i3 и 8 ГБ против 6 ГБ это не сильный перевес.

    ИМХО HP Pavilion x360 14-ba018ur будет лучше

    UPD: как уже писали, стоит разузнать на счет перегрева. Одно точно могу сказать - у ASUS на Intel/nvidia проблем с перегревом нету
    Ответ написан
    4 комментария
  • В каких случаях использовать ООП?

    Ni55aN
    @Ni55aN
    ООП уместно использовать для тех задач, где компоненты приложения будет удобнее разделить на некоторые абстракции (сущности)

    Особенности:
    • - нет необходимости применять ООП для очень мелких программ/скриптов
    • + желательно использовать в программах, которые потребуется поддерживать и улучшать
    • + необходимо использовать в больших программах (чем больше функций должно выполнять ПО, тем сложнее будет их все правильно структурировать и реализовать)


    Например, в самом простом калькуляторе нет необходимости что-то представлять в виде объектов, достаточно функционального стиля (все что от него требуется, это методы add, sub, div, mul и т.д.)
    Если что-то посложнее, тогда с одними функциями будет сложно работать, и будет сложнее разбираться в коде (поддерживать его) и понимать какая часть кода за что отвечает (нажатие кнопки, вывод результата).
    В случае с ООП можно такие компоненты представить в виде классов, тем самым оградить нужные данные и методы от остальных (классы Button, Field, и Operation, например). Конечно, и кода станет больше, но зато потом будет легче в нем разобраться, чем перебирать все функции и места, где они выполняются.
    3 принципа ООП:
    • инкапсуляция - изолирование некоторых данных и методов от прямого внешнего воздействия
      Например, у Button есть имя, но оно не должно быть доступно как public, чтобы его не могли изменять как попало, а изменять только через метод setName, который будет контролировать что можно ставить как имя кнопки, а что нельзя

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

    • полиморфизм - позволяет работать с данными не заботясь о том, какие дополнительные свойства имеют эти данные (объект) или какого они типа
      Например, есть класс Месседжер, он имеет метод отправить(что-то). В виде параметра нужно передать то, что нужно отправить, а это может быть как текст, так и файл. Это пример статического полиморфизма (хотя в JS его трудно назвать таковым, так как он с динамической типизацией и не имеет перегрузки методов, и все разборки по поводу того, что делать с данными разного типа происходят при выполнении программы). В динамическом необходимо знать только то, что умеет делать определенный объект и не важно чем он есть на самом деле и как он это делает (см. пример с классом Транспорт выше)

    Ответ написан
    2 комментария
  • Что быстрее фильтрует данные: sql или js?

    Ni55aN
    @Ni55aN
    Конечно же SQL'ом это лучше делать. При паре десятков записей может и не будет заметна разница в производительности, но если в базе будет тысяча записей, тогда считывать их все и передавать на клиент будет очень затратно
    Ответ написан
    Комментировать
  • Какие есть хостинги для быстрого размещения JS, HTML и CSS файлов?

    Ni55aN
    @Ni55aN Автор вопроса
    Нашел вот такой хостинг для статических сайтов - Surge.sh

    Преимущество в том, что можно опубликовать файлы всего в пару кликов
    Ответ написан
    Комментировать
  • Как исправить свою некоррктную работу на git?

    Ni55aN
    @Ni55aN
    Это конфликт слияния. Происходит потому, что в двух ветках были параллельно внесены изменения (перед ======= то, что в одной ветке изменилось, после - в другой)

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

    Похоже, что это появилось после автоматического форматирования кода (если везде так), поэтому лучше сделать checkout к нужному месту (откатить изменения в одной из веток) или fetch, если на удаленном репозитории нужные изменения уже есть
    Ответ написан
    Комментировать
  • Почему большой Canvas с WebGL контекстом занимает много памяти?

    Ni55aN
    @Ni55aN Автор вопроса
    В WebGL по умолчанию включены буфер глубины, сглаживание и альфа канал, поэтому ест много памяти.

    Источник
    Ответ написан
    Комментировать
  • Как изменить начало координат canvas?

    Ni55aN
    @Ni55aN
    context.transform(1, 0, 0, -1, 0, canvas.height)

    Источник
    Ответ написан
    Комментировать
  • Почему JS думает что 0.1 не равен 0.1?

    Ni55aN
    @Ni55aN
    Можно только определить по какой-то точности, но это значение зависит от величины чисел, которые использовались при вычислениях. Например
    Не
    x === y
    а
    Math.abs(x-y) < Number.EPSILON
    Для этого примера ок, но если x=9.03-9.02, y=0.2-0.1. тогда не работает, и нужно брать точность побольше
    Ответ написан
    Комментировать
  • Как поймать исключение в асинхронной функции?

    Ni55aN
    @Ni55aN
    в reject нужно передавать
    async function test() {
      return new Promise((res,rej) => {
        setTimeout(() => {
          try {
          do1()
          res()
          }
          catch(e) {
          rej(e);
          }
          console.log('After throw')
        }, 2000)
      })
    }
    Ответ написан
    Комментировать
  • Есть ли библиотека для создания интерфейса редактора нодов?

    Ni55aN
    @Ni55aN
    https://github.com/Ni55aN/D3-Node-Editor

    Понимаю, что вопрос для вас неактуален, но может кто-то еще заинтересуется))
    Ответ написан
    Комментировать