• Найдена опасная уязвимость в очень популярном мобильном приложении. Что делать?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Внимание! Изменился адрес почты!
    и учечка данных пользователей может обойтись сервису 100.......000$-ми убытками

    Может. Но (тебе) лучше, чтобы об этом сообщил кто-нибудь другой. Потому что скорее всего, тебя же и обвинят во взломе и хищении.
    Обращаться стоит только в том случае, если у сервиса есть программа по исправлению ошибок ("bugs bounty"), если же нет, а аппликуха популярная - лучше перестать пользоваться, застраховаться и не лезть, ну или сообщить с левого одноразового мейла.
    А что до вознаграждения - вот что пишет классик, Иван наш Андреевич Крылов
    Ответ написан
    Комментировать
  • Как сделать 3д?

    такое делать на css избыточно
    представьте только, какое количество перерисовок понадобится, cpu вам спасибо не скажет
    лучший вариант - работа с gpu (проще в тему зайти через библиотеку threejs, сам glsl порой может обить всё желание)
    отрисовка и анимация куба, хоба:
    //создаем сцену
    const scene = new THREE.Scene();
    //создаем камеру на основе ширины и высоты окна
    const camera = new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight);
    //создаем рендерер, определяем его размеры
    const renderer = new THREE.WebGLRenderer({antialias: true});
    renderer.setSize(window.innerWidth,window.innerHeight);
    //отрисовываем в нужном месте
    $('body').append(renderer.domElement);
    
    //создаем меш (состоит из геометрии и материала)
    const geometry = new THREE.BoxGeometry(1,1,1);
    const material = new THREE.MeshBasicMaterial({color: 0xff0000});
    const cube = new THREE.Mesh(geometry,material);
    
    //добавляем его на сцену
    scene.add(cube);
    //позиционируем
    cube.position.z = -5;
    cube.rotation.x = 10;
    cube.rotation.y = 5;
    //рендерим
    renderer.render(scene,camera);
    
    //добавляем анимацию
    let animate = function(){
      //задаем вращение
      cube.rotation.x += 0.01;
      renderer.render(scene,camera);
      //просим у браузера обновлять анимацию перед каждой перерисовкой
      requestAnimationFrame(animate);
    }
    animate();


    пожалуйста, примеров куча

    если говорить о математике, то нужна линейная алгебра и чуток тригонометрии
    речи о докторской степени не идет, но понимание базовых принципов только сыграют на руку
    Ответ написан
    Комментировать
  • Как перевести в режим DND без участия пользователя?

    @hermiD
    Перевести в DND можно так:
    asterisk -rx 'devstate change Custom:DND111 BUSY'
    asterisk -rx 'devstate change Custom:DEVDND111 BUSY'
    asterisk -rx 'database put DND 111 YES'


    заменяете "111" на номер того, кого нужно отправить в DND.

    Проверить состояние номера:
    asterisk -rx 'database get DND 111' Если в ответ получаем - "Value: YES", значит DND активирован на данном номере.
    Ответ написан
    Комментировать
  • Какой-то js код выводит alert, но не могу найти?

    Stalker_RED
    @Stalker_RED
    В девтулс пропишите
    window.alert = function() {
        debugger;
    }

    Затем добейтесь срабатывания этого алерта, и у вас будет остановка в том месте, где он был вызыван.
    Ответ написан
    4 комментария
  • Поведение addEventListener отличается при анонимной и именованной функции?

    profesor08
    @profesor08 Куратор тега JavaScript
    Анонимная функция где-то там регистрируется, ссылка на нее есть в объекте, и эту же ссылку ты передаешь в addEventListener. Когда ты создаешь объект, и задаешь переменной новую функцию, то эта функция тоже регистрируется и ссылка на нее устанавливается этой переменной. Но, в eventListner ссылка не будет переназначена. Решить можно разными способами, первое что приходит в голову это удалять старый слушатель и устанавливать новый. Либо задать один какой-то слушатель, который будет вызывать некий код, который будет уже выполнять нужные тебе действия.
    function Popup() {
      this.btn = document.querySelector("h1");
    
      this.btnHandler = e => console.log(e);
    
      this.btn.addEventListener("click", e => this.btnHandler(e));
    }
    
    let p = new Popup();
    
    p.btnHandler = e => console.log(111);
    Ответ написан
    Комментировать
  • Как грамотно использовать rem в адаптивной вёрстке?

    Если говорить о мобильном, то если разрешения экрана у него Full HD, то это не значит что контент на нем будет отображаться так же как на десктопе с тем же разрешением. Для этого существует мета тег viewport. Уменьшая размер шрифта для мобильного, ты уменьшаешь его не относительно 1920, а относительно 320px на минимальном для мобилок. Это я к тому что можно использовать просто пиксели для шрифта и выглядеть будет нормально. Просто регулируй в медиа-запросах и все
    Ответ написан
    Комментировать
  • Как правильно писать на ООП?

    Xuxicheta
    @Xuxicheta
    инженер
    У вас линейная обработка данных, это одна процедура, а вы сделали класс ради класса.

    Вообще в js я начал стараться предпочитать функциональный стиль там, где это возможно.
    Даже методы пишу максимально похожими на чистые функции. Так проще переиспользовать их в других местах и, вообще, понятнее что происходит.
    А то уже замучался разбираться с этим хардкорным ООП, которое встречается сплошь и рядом.

    Качественный класс написать сложно, плюс наследование в js не особо рекомендуется. А для композиции лучше подходят простые функции.
    Ответ написан
  • Возможно ли создать сайт " поиск авиабилетов " на Vue или ...?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    возможно ли создать сайт авиабилетов на Vue

    vue - это один из инструментов в этой задаче. Тут вероятно понадобится api на backend на каком-нибудь yii2(3) или laravel. Понадобятся уверенные знания html, css, js, npm, webpack, composer.
    А vue будет решать лишь часть задач.

    Ваш вопрос похож на "можно ли из метала построить ракету". Как бы и да и нет. Одного метала мало будет, если надо, что бы полетела.

    В случае с авиабилетами прийдется видимо еще ознакомится с api сервисов, которые дают данные. Понять что такое json и/или xml. Вероятно не обойдется без ajax.
    Я бы сказал, что это самый плохой вариант для изучения чего-то. Так как он весьма не прост и требует опыта и стека достаточно серьезного. Тренироваться лучше на "кошках" ))))
    Ответ написан
    Комментировать
  • Как правильно сегодня собрать браузерный ES6?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    На webpack стоит переходить хотя бы ради адекватной инкрементальной пересборки в watch режиме и горячей перезагрузки работающей одинаково для всех браузеров.

    Вместо babel лучше использовать typescript в режиме совместимости с js для старого кода (babel генерит совсем уж шайтан кашу и гораздо медленнее собирает).
    Новый код сразу на typescript писать. (подсказки в ide на выводе типов и @types/* для библиотек здорово ускоряют процесс написания и частично компенсируют отсутствие тестов в проекте, если за них не платят - то есть всегда :( )

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

    Ну и опять же идеология webpack что все есть модуль (не зависимо от типа файла) и может подключать другие модули хоть и кажется по началу диковатой, но на практике оказывается гораздо удобнее в применении.
    Примеры
    - парсинг и преобразование файлов локализации на этапе сборки и распихивание переводов сразу в результирующий бандл.
    - усечение файлов иконочных шрифтов, на основе используемых в коде классов.
    - CSS Modules
    Ответ написан
    3 комментария
  • Какой лучший Git клиент с GUI для Windows?

    @karminski
    Senior React.JS Developer
    Пользуюсь встроенным в PhpStorm. Удобно, ничего лишнего. Не нужно устанавливать отдельное ПО.
    Ответ написан
    3 комментария
  • Почему при создании интернет-магазинов не используеться AngularJS?

    Для интернет магазинов есть уже много готовых CMS/шаблонов с готовыми админками, учетами всего чего душе угодно и прочего. Написание своего функционала дублирующего данный - довольно трудоёмкая задача, которая не даст реального профита.
    Так что причины чисто финансовые, технических проблем нет.
    Ответ написан
    1 комментарий
  • React. Server rendering. Видел ли кто-то адекватную реализацию fetchData? (т.е. с загрузкой асинхронных данных)?

    @MrCheater Автор вопроса
    Full-Stack JS. В прошлом программист-олимпиадник
    Ответ написан
    Комментировать
  • Вопрос по работе, что посоветуете?

    @GreatRash
    Если задачи однотипные, то можно придумать для них однотипное решение, затем клепать их за пять минут и оставшееся время проводить на тостере :) Ну или что-то для себя мутить.
    Ответ написан
    1 комментарий
  • Как разрабатываются такие сайты?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Опыт создания подобных штук есть. Это очень геморройно. Таких работ мало, так как тут нужен не простой дизайнер и не простой верстальщик, и даже не простой front-end'er, а все вместе: программист js-ер, умеющий толково верстать, при этом, прочитавший немало книг по дизайну.
    Не думаю, что под данную достаточно специфичную задачу есть фреймворк.
    UPD. Продублирую ответ из комментариев:
    специфично здесь следующее: когда вы начнете делать такой сайт, вы столкнетесь с кучей проблем уровня js, верстки и дизайна. Сначала вы будете тупить над версткой и css, потом над тем, чтобы ваш js-код был читабельным, затем над тем, чтобы все это дело подгонять, потому что с первого и десятого раза у вас получится некрасивая херня. Придется менять js-код и верстку по 10 раз, и, если вы не имеете достаточного опыта в том и в другом, у вас получится страшный код, 100500 итераций переделки и огромное число человеко-часов.
    Это просто так кажется, что вот тут полоска, тут полоска, го анимировать. Это же все надо продумать, скреативить, затем подгонять параметры анимации и прочего.
    Либо трех людей (js-программист, верстальщик, дизайнер) запереть в одной комнате и привязать цепью =)
    Ответ написан
    9 комментариев
  • Верстка из PSD макета. Как правильно верстать?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    1) руководствуясь здравым смыслом
    2) можно, руководствуясь здравым смыслом
    3) очевидно, что каждой единице измерения - своё место.
    4) это контрольные точки. дизайнер дает вам понять, как должно все работать. в этих точках, как правило, верстка должна соответствовать макету. остальное - руководствуясь здравым смыслом.
    Ответ написан
    1 комментарий
  • JS: Почему метод класса, вызванный через коллбэк, не имеет контекста?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    потому что в JS нет классов и их методов, есть объекты и функции. Передавая "метод" объекта в качестве колбэка вы делаете его просто функцией, и она теряет свой контекст.

    То есть this будет равен тому, в каком контексте мы вызываем функцию. Вызывая foo.bar() у нас контекст будет указывать на foo, но мы можем присвоить эту функцию любому объекту и таким образом сменить контекст.

    Читайте про контекст вызова в JS и обретете счастье.
    Ответ написан
    1 комментарий
  • Что все-таки должен уметь делать frond-end-разработчик?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Все то что запускается в браузере - ваша зона ответственности. Ajax (ajax это просто возможность делать http запросы из js), все эти фреймворки и библиотеки, все все все. От бэкэнда вас целиком и полностью отделяет весьма жирная сетевая прослойка. Причем эту прослойку вы так же должны знать как слой интеграции между фронтэндом и бэкэндом (на поверхносном уровне хотя бы).

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

    Если фронтэнд - это отдельное приложение, то и знать вы должны все что нужно для его построения. Это и архитектурные штуки (MVC/MVA/MVVM/MVP/Flux/паттерны всякие/функциональное программирование) и тесты писать уметь должны и т.д. Все как у бэкэндщиков по объемам знаний. Просто у бэкэндщиков геморой обычно в конкурентных запросах, локах, базах данных и другими веселыми штуками. а у фронтэндщиков - зоопарк браузеров, различия в окружениях и т.д.

    nodejs - это уже опционально. В любом случае если вы хорошо знаете JS то посмотреть как там чего в API ноды проблемы не составит (например что бы быстренько поднять expressjs сервачек для разработки с мидлвэрами, часто нужно для всяких webpack-ов и browsersync). Ну и опять же билд стэк у фронтэндщиков в принципе весь на ноде написан. Но это не бэкэнд.
    Ответ написан
    4 комментария
  • Можно ли использовать flex?

    dom1n1k
    @dom1n1k
    Можно, но осторожно.
    Во-первых, смотреть аудиторию конкретного проекта. Она может быть консервативной и тогда нельзя.
    Вы-вторых, flex хоть и формально поддерживается уже много где, в нюансах технология пока сыроватая и глючноватая (если погуглить, много чего интересного находится).
    Ответ написан
    Комментировать