• Сколько времени нужно закладывать в детальный технический аудит сайта?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Как и в случае с любой другой задачей в мире, если вы не знаете, сколько времени и сил на неё понадобится, это означает одно из двух:
    1. Задача слишком общая и её нужно дробить, оценивая подзадачи.
    2. Вы некомпетентны в данном вопросе и задачу нужно отдать тому, кто нужными знаниями обладает. Если у вас есть желание повысить свой уровень, то нужно стоять над душой у этого человека во время работы и задавать вопросы.

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

    От того, что вам напишут в ответах "от дня до года", вам легче не станет, а ничего кроме этого написать и невозможно, потому что в описанной вами задаче огромное количество подвижных частей и взаимозависимых переменных.
    Ответ написан
    5 комментариев
  • Что не так с моим кодом?

    Я в JS полный нуль, но возможно надо $("#WebGL-output").append(render.domElement);
    У тебя в HTML id, а не class
    Ответ написан
    Комментировать
  • Как отыскать нагрузку?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    А на что хоть нагрузка выросла? Процессор? Память? Диск? Сеть? Заявление хостера из разряда "и кофе у вас невкусный, и сайт ваш говно". Пиково или стабильно? А если прогнать стресс-тесты? А пробовали прогнать плагином P3 (Plugin Performance Profiler)?
    Ответ написан
    2 комментария
  • Angular 2 как задать template динамически?

    Посмотрите вот этот ответ Как в Angular2 инициализировать router?
    Там немного устаревший код

    Обновленная версия

    1) Использование компилятора

    Создаем директиву, которая будет динамически подгружать компонент с желаемым шаблоном
    html-outler.ts
    @Directive({ selector: 'html-outlet' })
    export class HtmlOutlet {
      @Input() html: string;
      cmpRef: ComponentRef<any>;
    
      constructor(private vcRef: ViewContainerRef, private compiler: Compiler) { }
    
      ngOnChanges() {
        const html = this.html;
        if (!html) return;
        
        if(this.cmpRef) {
          this.cmpRef.destroy();
        }
        
        @Component({
          selector: 'dynamic-comp',
          template: html
        })
        class DynamicHtmlComponent  {};
    
         @NgModule({
          imports: [CommonModule],
          declarations: [DynamicHtmlComponent]
        })
        class DynamicHtmlModule {}
    
        this.compiler.compileModuleAndAllComponentsAsync(DynamicHtmlModule)
          .then(factory => {
            const moduleRef = factory.ngModuleFactory.create(this.vcRef.parentInjector);
            
            const compFactory = factory.componentFactories.find(x => x.componentType === DynamicHtmlComponent);
            const cmpRef = this.vcRef.createComponent(compFactory, 0, moduleRef.injector);
          });
      }
      
      ngOnDestroy() {
        if(this.cmpRef) {
          this.cmpRef.destroy();
        }    
      }
    }

    Затем используем это таким образом:

    <html-outlet [html]="html"></html-outlet>

    Вместо template может быть templateUrl Параметры @Input@Output можно накрутить потом если надо

    Пример как это работает

    2) Если у вас есть строго определенный набор компонентов, то можете рассмотреть другой вариант:

    ComponentFactoryResolver.resolveComponentFactory

    В этом случае эти компоненты нужно добавить:
    1. в entryComponents массив вашего модуля или компонента
    2. или через ANALYZE_FOR_ENTRY_COMPONENTS провайдер
    Ответ написан
    Комментировать
  • Как сделать не эллипс, а круг?

    pxz
    @pxz
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Поглядите как реализовано тут: www.ifmo.ru
    Такое меню отображается на маленьких экранах, поэтому нужно уменьшить окно.

    codepen.io/anon/pen/gwkWad вот Ваш вариант с кругом.
    Эллипс там потому что у .menu-wrapper высота и ширина была высотой и шириной всей страницы (а там скорее 16x9, чем 1x1).
    У .menu-wrapper стоит задать ширину и высоту так, чтобы получился квадрат. То есть, можно выбрать максимальный размер (ширину или высоту) и задать размеры, равные максимальному.
    Ответ написан
    3 комментария
  • Как сделать не эллипс, а круг?

    @GreatRash
    Ответ написан
    Комментировать
  • Как вычислить загрузку DOM-дерева или страницы в целом?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Процесс загрузки HTML-документа, условно, состоит из трёх стадий:
    • DOMContentLoaded – браузер полностью загрузил HTML, и построил DOM-дерево.
    • load – браузер загрузил все ресурсы.
    • beforeunload/unload – уход со страницы.

    Все эти стадии очень важны. На каждую можно повесить обработчик, чтобы совершить полезные действия:
    • DOMContentLoaded – означает, что все DOM-элементы разметки уже созданы, можно их искать, вешать обработчики, создавать интерфейс, но при этом, возможно, ещё не догрузились какие-то картинки или стили.
    • load – страница и все ресурсы загружены, используется редко, обычно нет нужды ждать этого момента.
    • beforeunload/unload – можно проверить, сохранил ли посетитель изменения, уточнить, действительно ли он хочет покинуть страницу.

    https://learn.javascript.ru/onload-ondomcontentloaded
    Ответ написан
    Комментировать
  • Не убьёт ли WebAssembly node.js?

    Комментировать
  • Custom JavaScript?

    romy4
    @romy4
    Exception handler
    1 никак
    2 никак
    3 никак
    Ответ написан
    9 комментариев
  • Как контролировать сайт?

    27cm
    @27cm
    TODO: Написать статус
    Я не знаю как называется такое вредительство, может быть есть целое направление в такой среде и есть термины, методы и примеры?

    Есть несколько статей в УК на эту тему, почитайте:
    Статья 272. Неправомерный доступ к компьютерной ин...
    Ответ написан
    2 комментария
  • Как решить проблему с написанием модуля на javascript?

    Ну я точно не знаю, можно попробовать добавить одну строчку прям в начало вашей функции

    function MmaCarousel (id, args) {
      var obj, contain, internal, controls, items; <== вот эту

    codepen.io/anon/pen/dpZOgW
    Ответ написан
    Комментировать
  • Как использовать компоненту одного модуля в другом?

    NotificationModule
    Вам нужно обязательно объявить NotificationBellComponent в declarations массиве
    @NgModule({
      imports: [CommonModule, SharedModule],
      declarations: [NotificationComponent, NotificationBellComponent],
      exports: [NotificationComponent, NotificationBellComponent],  
      providers: [NotificationService]
    })

    You can export any declarable class — components, directives, and pipes — whether it is declared in this module or in an imported module.

    Модули можно экспортировать даже если они не импортированы
    You can re-export entire imported modules which effectively re-exports all of their exported classes. A module can even export a module that it doesn't import.

    What should I export?

    ToolbaModule
    1) imports - только для модулей
    2) зачем объявлять NotificationBellComponent, если вы его импортируете из модуля NotificationModule
    итого ваш модуль
    @NgModule({    
        imports: [CommonModule, SharedModule, NotificationModule],
        declarations: [ToolbarComponent],
        exports: [ToolbarComponent]
    })

    https://plnkr.co/edit/R9pGm6sd8vagd2OepHB4?p=preview
    Ответ написан
  • Как создать мультиязычный модуль в Yii2?

    @LAV45
    Когда-то тоже искал подобное решение, но все что-то не то было.
    В итоге написал собственное расширение https://github.com/LAV45/yii2-translated-behavior
    На данный момент используется в 5 проектах в prodakshen
    Расширение регулярно дорабатывается под различные варианты использования.
    Есть демо https://yii2-translated-behavior.herokuapp.com
    с открытым исходным кодом https://github.com/LAV45/yii2-translated-behavior-demo
    Ответ написан
    Комментировать
  • Как платить фрилансерам в белую (субподряд)?

    kumaxim
    @kumaxim
    Web-программист
    Пример №1
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик тоже ИП в РФ.
    Что делать: подписывайте договор на оказание услуги, например, Вы платите 5 т.р. за разработку дизайна.
    Расходы: пересылка конверта с документами в адрес Вашего подрядчика, который будет рисовать дизайн
    Налоги: нет

    Пример №2
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик физическое лицо в РФ.
    Что делать: подписывается гражданко-правовой договор(часто Вы можете встретить сокращение ГПХ - гражданско-правового характера). Он будет точно таким же как договор между ИП, только в качестве исполнителя в нем указано физ.лицо.
    Первое что необходимо помнить при оформлении договора подряда с физ.лицом - коные договора должен быть четко определен, например, "...Исполнитель обязазуется нарисовать Заказчику дизайн-макет сайта кулинарной тематики и предоставить его до 25.10.2016". Ни в коем случае не должно быть указано выполнение какие-либо переодических действий, например, "...Исполнитель обязуется выполнять работы по разработке дизайн-макетов сайтов, в течении 10 дней с момента поступления запроса от Заказчика..." Это уже будет являться трудовым договором, а это уже отдельная тема.
    Расходы: пересылка договора подрядчику + пересылка отчетов в ФНС и ПФР
    Условие: Пусть 5 000 рублей это сумма, за которую работает Ваш подрядчик.
    Налоги:
    1. 13% - налог на доходы физ.лиц
    2. 22% - взнос в Пенсионный фонд
    3. 5,1% - взнос в фонд Обязательного мед.страхования

    Расчет:
    1. 5 000 - 13% = 4350 - столько получит на карточку Ваш исполнитель
    2. 5 000 - 87% = 650 - это 13% НДФЛ
    3. 5 000 + 22% = 1100 - в Пенсионный фонд
    4. 5 000 + 5.1% = 255 - на медицину
    Итог: Ваш подрядчик получает 4350 рублей. Бюджет РФ получает с этого 1975 рублей. Суммарно Вы заплатите 6325 рублей
    Отчеты: в Пенсионный фонд(если не ошибаюсь форма РСВ-1) и в ФНС. В ПФР отчет должен быть отправлен в конце месяца, хотя могу ошибаться. Для наемных сотрудников на трудовом договоре РСВ-1 точно ежемесячно предоставляется. Для людей на договорах подряда точно не скажу, спрашивайте в своем ПФР. В ФНС отчет раз в год до 01.04 должен быть предоставлен.

    Пример №3
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик физическое лицо вне юрисдикции РФ
    Что делать: ежайте в эту самую другую юрисдикцию, открывайте там филиал/представительство и работаете по законам той страны. Деньги сначала со своего ИП кидайте на представительство, а потом с него уже Вашим наемным людям. И да, еще Вас ждет с распростертыми объятиями валютный контроль банка и ФНС внешние операцияии с аффилированными иностранными компаниями любит под микроскопом рассматривать.
    Налоги: не знаю, сильно зависит от страны назначения.

    Пример №4
    Вы являйтесь ИП в юрисдикции РФ. Ваш подрядчик ИП/юр.лицо вне юрисдикции РФ
    Что делать: идти в банк и узнавать что такое валютный контроль, что надо заполнять, сколько это идет и т.д. Точно нужен будет счет в иностранной валюте. Вроде бы, но могу ошибаться, еще нужно будет регистрироваться на таможне, даже если Вы физически через границу ничего перемещать не собирайтесь(тут могу ошибаться).

    Вывод.

    Оцените объем работы, которую Вы хотите сами аутсорсить и либо найдите веб-студию, которой будите аутсорсить и получать от них все документы либо возьмите себе в штат человека, который будет все это делать.
    Ответ написан
    1 комментарий
  • Нюансы верстки email-письма?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Если требуется во всех почтовых клиентах (допустим Outlook 2011+), то офк онли таблички с инлайн стилями. Респонсив поддерживается адекватно только в эпл почте + имеется гибридный подход для gmail, но он геморойный.
    Вообще норм люди делают подобные вещи с помощью вот таких штук foundation.zurb.com/emails.html
    Руками только наркоманы все верстают, ибо повесится можно.
    Ответ написан
    3 комментария
  • Смысл математического ожидания, дисперсии и среднеквадратического отклонения?

    Olej
    @Olej
    инженер, программист, преподаватель
    Везде сплошные формулы и сухие определения, не дающие понять в чем реальный смысл и как это можно применить на настоящем показательном примере

    Если вы не любите "сплошные формулы" - то, может оно вам не надо?

    Но вот на примере ... например для случайного шума, записанного последовательными отсчётами в массив (вы же "программист" себя назвали?):
    double A[ 1024 ];
    - мат.ожидание - это среднее значение по отсчётам массива, или постоянная составляющая сигнала;
    - дисперсия - это мощность сигнала;
    - СКО (средне-квадратичное-отклонение) - это средняя амплитуда сигнала;

    Вот вам и "физический смысл".
    Ответ написан
    1 комментарий
  • Как включить или выключить блок на странице?

    @alch
    Front-end, Angular2, typescript
    В самом шаблоне пропишем ngIf
    <header *ngIf="hasHeader" class="header"></header>
    <aside *ngIf="hasAside" class="aside"></aside>
    <router-outlet></router-outlet>


    Слушаем изменения роутера в app.component
    import {Router} from '@angular/router';
    export class AppComponent {
    	hasHeader: boolean = true
    	hasAside: boolean = true
    
    	constructor(
    		private _router: Router
    	) { }
    
    	ngOnInit() {
    		this._router.events
    			.subscribe(params => {
    				let path = params.url.split('/')[1]
    				if (path == 'auth') {
    					this.hasHeader = false
    					this.hasAside = false
    				} else {
    					this.hasHeader = true
    					this.hasAside = true
    				}
    			})
    	}
    }
    Ответ написан
    4 комментария
  • Проблемы в работе сайта на bitrix?

    Logic87
    @Logic87
    Программист/администратор сайтов на 1С-Битрикс.
    Это касается чисто настроек php сервера.
    Вот попробуйте время жизни сессии 3 часа - в файле php.ini устанавливаем следующие параметры:
    session.gc_maxlifetime = 10800
    session.cookie_lifetime = 10800

    Если у вас нет возможности внести изменения в файл php.ini, то можно сделать установку этих параметров при помощи файла .htaccess. Для этого вносим в него следующие строки:
    php_value session.gc_maxlifetime 10800
    php_value session.cookie_lifetime 10800

    Кроме того, вы можете установить время жизни сессионной куки из PHP при помощи функции session_set_cookie_params. К примеру:
    <?php
    session_set_cookie_params(10800);
    ?>
    Ответ написан
    2 комментария
  • Как поставить сайт на локаль?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Попробуйте плагин Duplicator. Он обычно переносит без проблем.
    Ответ написан
    Комментировать
  • Как поставить сайт на локаль?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    гуглить в сторону переноса сайта на wp. там все просто и по шагам разъяснено. ничего в конфиге писать не надо. в базе ток поменять сайты нужно
    Ответ написан
    2 комментария