• Клиент предлагает оплату мимо Upwork. Все ок?

    dadster
    @dadster
    учить инглиш тут - https://t.me/langhacks
    Реально банят, причем клиент ведь может потом вас шантажировать. Так что такое можно позволить себе только с очень адекватным и хорошо знакомым клиентом. И если таким образом сэкономятся хорошие деньги.
    Ответ написан
    4 комментария
  • Как реализовать поиск по json?

    @Kusmich
    Для фильтрации массивов можно использовать функцию Array.prototype.filter

    Для фильтрации по конкретному полю

    var search = "text"
    var result = arr.filter(function(el){
        return el.fieldName.indexOf(search) > -1;//fieldName - поле по которому нужно фильтровать
    });

    Если искать нужно сразу по всем полям, то функцию фильтра можно модифицировать, например, так

    var search = "text"
    var result = arr.filter(function(el){
        for(var field in el){
            if(el[field].indexOf(search) > -1){
                return true;//если нашли хотя бы одно поле содержащее искомую строку, оставляем объект
            }
        }
        return false;
    });
    Ответ написан
    Комментировать
  • PostCSS или Stylus: Что выбрать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    но как я понял сложности с функциями и миксинами.


    не совсем, есть куча готовых плагинов, есть возможность добавлять свои функции для обработки AST и т.д.

    но вот говорить о будущем не приходится. Используйте то что вам удобно. Для смены технологии должны быть более объективные причины кроме как "маркетинг" тулзы.
    Ответ написан
    Комментировать
  • Как передать переменную в свою директиву?

    TekVanDo
    @TekVanDo
    Javascript Developer
    $scope.param = [1,2,3];

    <div test test-data="param"></div>
    angular.module('testApp')
    .directive('test', function () {
      return {
        scope: {
          imgData: '=testData'
        },
        restrict: 'A',
        link: function (scope, element, attrs) {
          console.log(scope.testData); // params"
        }
      }
    })
    Ответ написан
    1 комментарий
  • Стоит ли сейчас учить TypeScript?

    @kgorozhanov
    Front-End Developer
    Советую вам на хорошем уровне освоить первый ангулар. Но учить никогда не рано. Актуальным он станет как только выйдет стабильная версия, при чем в вакансиях будут требовать 5 лет опыта на Angular 2))))))
    Ответ написан
    2 комментария
  • Как растянуть элементы списка по ширине родителя?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Как вариант, можете задать для ul свойство display: table, а для li — как ячейки таблицы (table-cell) для схожего поведения. Рассмотренный пример на StackOverflow находится тут.

    Для Вашего случая должно получиться примерно вот так
    Ответ написан
    1 комментарий
  • Что мой провайдер знает обо мне?

    @nirvimel
    Когда я захожу на определенный сайт, провайдер видит URL?

    Да.

    А если я захожу на https?

    Известен IP сервера и имя домена. Больше ничего.

    Откуда провайдер узнает, что я скачиваю определенный фильм/программу через torrent?

    Торрент-клиент общается с трекером по HTTP. Все видно насквозь: конкретные торренты + вся статистика (когда начато скачивание, когда закончено, когда пошла раздача, сколько роздано). Возможно подключение к трекеру и по HTTPS, но rutracker.org такой возможности не дает (мне тоже интересно почему).

    Все пакеты которые я получаю и раздаю значит провайдер скачивает себе, чтобы узнать что это за фильм/программа?

    Провайдер не хранит у себя весь трафик. Это технически невозможно. Но трафик обрабатывается, классифицируется и ведутся логи о том какой тип трафика когда входил/уходил от абонента.

    Или он отслеживает факт скачивания .torrent файла, а затем делает вывод по идущим пакетам, что это скачивается?

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

    Когда я пользуюсь VPN, что видит провайдер?

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

    Что я зашел на определенный IP и с него идут зашифрованные потоки?

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

    OpenVPN будет работать через VPN IP и в браузере и при обновлении Windows, драйверов, ...?

    В зависимости от настройки. Но в общем случае, да, так.

    Читал, что в Windows есть такая особенность, что если провайдер как-то урезает пакет, то VPN отключается и сайту показывается мой реальный IP?

    Это не связанно с провайдером. Это особенность Windows. Когда VPN отваливается, весь трафик вылетает наружу в открытом виде. Опять же зависит от настроек. Но это еще одна цена "удобства" при использовании Windows.

    При этом провайдер видит на каком я сайте, что скачиваю?

    VPN отвалился - хацкер спалился.

    Таких фишек много?

    Смотря о чем речь. В сфере сетевой безопасности и анонимности различных нюансов вообще много.

    Как от них защитится?

    Учить мат.часть. Разбираться в сетевых протоколах и в устройстве ОС.

    Если пользуюсь каким-то расширением типа ZenMate, dotvpn, провайдер аналогично как и с VPN видит что что-то отправляется и приходит на определенный VPN IP?

    Расширения очень разные. Они могут базироваться на совершенно разных технологиях. Ни один специалист вам не скажет за все расширения. Не исключено, что многие из них, по сути - honeypot, то есть созданы с целью слежения за любителями анонимности, привлекают своим удобством и дают ложное чувство безопасности.

    При использовании Tor, кто-то пользуется моим IP, пока я пользуюсь чужим?

    Нет. Если у вас не сконфигурирован Exit Node.

    Что при этом видит провайдер, что я получаю потоки данных с определенных IP и каждый раз разный IP?

    У них есть система точного обнаружения использования Tor. Это факт остается в логах с теми же последствиями, что и для VPN.

    Провайдер видит URL?

    Через Tor и VPN - нет.

    Каким образом можно полностью управлять сетью на ПК, видеть что, куда и когда отправляется или приходит на ПК (Windows, Linux)?

    Видеть все: https://www.google.com/search?q=Wireshark
    Блокировать все лишнее: https://www.google.com/search?q=Comodo+Firewall
    Ответ написан
    22 комментария
  • Как легче освоить внедрение зависимостей, code-first, TDD и паттерны?

    Valeriy1991
    @Valeriy1991
    Разработчик .NET C# (ASP.NET MVC) в Alfa-B, Moscow
    Добрый вечер! Спасибо за приглашение.
    На мой взгляд, Вам следует придерживаться следующих приоритетов по изучению:
    1. внедрение зависимостей более важно из Вашего списка, т.к. относится к SOLID принципам;
    2. TDD - на мой взгляд, вещь более нужная для изучения, чем code-first или patterns. Сам не так давно начал разрабатывать по TDD. Это очень здорово, что изобрели такой подход. Экономит тонну времени на ручное тестирование, а также дает быстрое понимание, что и где случайно (или неслучайно) сломалось. Главное - понимать, что покрывать тестами;
    3. третьим в список я бы добавил AngularJS или KnockoutJS или BackboneJS - сам пока что не изучил их и не начал применять, но судя по их популярности и преимуществам - думаю, Вам стоит с ними ознакомиться;
    4. code-first или database-first - не так уж и важно на Вашем этапе понимания. Главное отличие подхода Code-first: 1) модель пишется вручную, в связи с чем не нужно постоянно отслеживать edmx-диаграмму (т.е. можно считать, что Ваша code-first модель всегда находится в актуальном состоянии); 2) поддерживает миграции БД. В Database-first Вам нужно самому отслеживать актуальность состояния Вашей edmx-модели - с этим тоже могут быть проблемы. Опять же - только с опытом. С другой стороны, Database-first позволяет наглядно видеть Вашу модель, а вот Code-first - нет;
    5. паттернами тоже можете пока что голову не забивать. Безусловно, это нужно, но понимание их придет только с опытом (признаюсь честно: я сам не до конца все паттерны знаю и понимаю). На мой взгляд, важно соблюдать 1 основной паттерн - 3-уровневая архитектура (клиентский слой, слой бизнес-логики, слой работы с данными).

    Теперь по MVC.
    1. Model - тут, в принципе, всё просто: модель данных. Здесь можно поспорить, что иметь в виду под Моделью: модель самих данных или модель представления. Лично я после опыта работы с шаблоном MVVM в WPF под моделью данных в терминах ASP.NET MVC понимаю модель представления, а под термином "модель данных" - саму доменную модель (EF code-first, например). Кто-то может сказать, что это "лишняя работа" - по упаковыванию модели данных из EF-объектов в объекты модели представления. Да, частично соглашусь. Но зато это дает некую гарантию безопасности, что случайно пользователь не поменяет важную часть модели данных (например, ID).
    2. Контроллер. Основная задача контроллера - сформировать данные для отображения и передать эти данные в представление. Т.е. нужно стремиться к тому, чтобы код метода действия в контроллере содержал минимум кода. В идеале - вызов метода из слоя бизнес-логики и передача полученных данных в представление. Если Вы видите, что метод действия в контроллере содержит какую-то бизнес-логику, то это сигнал к рефакторингу: Ваш метод действия слишком много знает. По опыту могу добавить, что в среднем код метода действия содержит от 2 до 20-30 строк кода (с учетом того, что скобки { и } расположены на отдельных строках).
    3. Представление. Тут тоже всё просто: отобразить данные (из модели представления). Ни в коем случае нельзя в представлении писать логику по работе с самими данными, например, так делать нельзя:
    <div id="account">
        @{
            using(var db = new MyEfDbContext()
            {
                var userAccount = db.Accounts.FirstOrDefault(e => e.Username == User.Identity.Username);
                if(userAccount != null)
                {
                    @:Имя: @userAccount.Name
                    @:Фамилия: @userAccount.LastName
                }
            }
        }
    </div>


    Если у Вас 3-уровневая архитектура, например, есть слои:
    1. MyApp.MVC - MVC-application
    2. MyApp.BL - слой бизнес-логики
    3. MyApp.DAL - слой работы с данными
    то в представлении (View) вызывать напрямую сервисы бизнес-логики тоже нельзя, особенно, если Вы используете DI-принцип (внедрение зависимостей) и IoC контейнер. Т.е. такой пример недопустим:
    <div id="account">
        @{
            var accountService = new MyApp.BL.AccountService();
            var userAccount = accountService.GetUserAccountByUsername(User.Identity.Name);
            if(userAccount != null)
            {
                @:Имя: @userAccount.Name
                @:Фамилия: @userAccount.LastName
            }
        }
    </div>

    Попробую донести мысль архитектора и разработчика Александра Шевчука (преподавателя с http://itvdn.com): "Одна из главных целей при разработке - стремиться к упрощению системы". Ослабление зависимостей позволяет нам упрощать систему благодаря тому, что изменение осуществляется только на 1 каком-то слое/уровне. Если Вы во View вынесете логику по работе с данными, а уж тем более, как в примерах выше, работу с EF-контекстом, то Вы усилите зависимость одного компонента системы (MVC-слоя) от другого (слоя работы с данными или слоя бизнес-логики). Усиление зависимостей приводит к бОльшему числу изменений, что в свою очередь сказывается на повышении расходов на эту систему. Ослабление зависимостей приводит к меньшему числу изменений (например, при переходе от EF к native SQL или NHibernate затрагивается только слой работы с данными, а слой MVC и бизнес-логики не меняются), а значит, к более раннему выпуску системы или очередного релиза, и как следствие, снижение расходов (не только денежных, но и других ресурсов) на разработку. TDD тоже можно отнести к практикам, которые снижают затраты ресурсов на содержание системы. Но это я ушел в глобальное...

    Правильным будет подход, при котором у Вас снижается зависимость компонентов системы друг от друга, в случае с ASP.NET MVC приложением, на мой взгляд, это когда:
    - View знает о модели (я по прежнему буду иметь в виду модель представления - ViewModel, которые объявлены либо в MVC-слое, либо в слое бизнес-логики);
    - контроллер знает о слое бизнес-логики, обращается к нему за выполнением операций и получением ViewModel'ей, после чего передает во View полученную ViewModel (ну или JSON-данные);
    - Model формируется по принципу, грубо говоря, почти на каждую View своя модель.

    Фразу "правильным будет подход" я обосновываю тем, что у такого подхода есть масса плюсов (которые очевидны опытным разработчикам, но могут быть не до конца или неправильно поняты менее опытными коллегами, а именно):
    + View ничего не знает о доменной модели (только о ViewModel), благодаря чему Вы можете спокойно менять свою доменную модель, не внося изменений во View (см. выше про ослабление зависимостей и снижение количества связей). Также Вы спокойно можете перейти от EF к NHibernate или к native SQL, или использовать и то, и другое - View об этом никогда не узнает;
    + контроллер (да и весь MVC-слой) знает только о существовании слоя бизнес-логики, но ничего не знает о слое работы с данными.
    + если на View делать отдельную ViewModel, то это позволяет более полноценно управлять тем, что нужно показать пользователю. Т.е. дает возможность большего контроля отображаемых данных, повышает безопасность Вашего приложения (пользователь, например, не сможет изменить ID просматриваемой записи, если этого ID нет вообще в модели представления).

    Ну а вообще все зависит от задачи/проекта: нужно ли применять разбивку на слои или использовать ViewModel'и вместо обычных доменных моделей - надо думать над каждой ситуацией отдельно.

    P.S. На мой взгляд, литературу выбрали правильно - я тоже начинал изучение MVC с нее. Понравилась тем, что дается сначала общее описание и работа с ASP.NET MVC на сквозном примере. А потом идет более глубокое погружение в ASP.NET MVC. По разработке могу посоветовать блог Александра Бындю: blog.byndyu.ru Как мне кажется, там очень хорошо некоторые моменты разжевываются, в том числе SOLID, TDD, шаблон Repository, UnitOfWork и др.
    Ответ написан
    2 комментария
  • Функция объекта не видит поля объекта при вызове из setInterval?

    petermzg
    @petermzg
    Самый лучший программист
    setInterval(function() { a.getXplusY() }, 1000);
    Ответ написан
    Комментировать
  • Как поместить кнопку на один уровень с меню?

    Зачем вам вообще этот див? просто вставьте кнопку в li.pull-right
    Ответ написан
    3 комментария
  • Можно ли создать переменную внутри ng-repeat?

    mitaichik
    @mitaichik Автор вопроса
    В общем, для этих целей существует ng-init
    Ответ написан
    Комментировать
  • Почему не работает return?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    return имеет смысл только в синхронных функциях. Вот так:
    function calc (a, b) {
        return a + b;
    }
    
    var c = calc (2, 2); // 4


    В асинхронных функциях return не имеет смысла, так как на момент выполнения кода, ничего не возвращается.
    Подумайте сами, в вашем случае, до наступления события мыши mousemove может пройти очень много времени.
    По этому с асинхронным кодом работают под другому. Вот пример на коллбэках:
    document.addEventListener("mousemove", function (e) {
      var coord = [];
      coord[0] = e.clientX+'px';
      coord[1] = e.clientY+'px';
    
      next(coord); // вызов коллбэка
    });
    
    function next (coord) {
      console.log(coord);
    }


    Помимо коллбэков существуют и другие подходы, например обещания. В jQuery есть кроссбраузерная реализация.
    Ответ написан
    9 комментариев
  • Какова вероятность получить проект на upwork'e с таким стэком?

    @iliyaisd
    Как раз-таки по Laravel я сейчас часто вижу вакансии. Причём чаще всего серьёзные. Если даже не с нуля, то крупные проекты. Это не обязательно может быть фултайм, но может быть например плотное сотрудничество, почасовая оплата 30+ часов в неделю.
    Часто также там бывают "заезжие" клиенты, которые используют апворк для поиска людей в удалённый штат и хотят платить мимо апворка (что рискованно само по себе и грозит заблоченным аккаунтом). Если видите классическую "вакансию" по описанию, payment method not verified и большая сумма - это они.
    По вёрстке они либо хотят человека-комбайна (чего я никогда не понимал - возможно, ищут команды?), либо у них есть дизайн в любом виде. Со штатным фронтендером тоже найти проекты можно. Тут главное определиться с терминологией. Сам пока в этом плаваю, но насколько успел понять по набитым шишкам, Graphic designer - это наш дизайнер, а просто designer - это верстальщик. Ещё часто пишут PSD-to-html.
    Как правило, заказчик просто приглашает в свой реп (битбакет/гитхаб), вы туда и пушите. Настройка проекта либо на вас, либо на другом члене команды... Заказчик, конечно, сам редко этим занимается.
    Ответ написан
    3 комментария
  • Учить Angular или Angular2?

    @breate
    Если деятельность по уже существующему проекту или проект начнётся в ближайшее 2 месяца то лучше ангуляр, если в перспективе больше чем пол года до проекта или проект будет в продакшене более чем через год, то лучше второй ангуляр.
    Ответ написан
    Комментировать
  • Какие курсы по JS пройти что бы реально чему то научится?

    keslo
    @keslo
    Поддерживаю Владимир Ионов. Плюс у Ильи Кантора проходят регулярные группы по обучению JS и NodeJS. Сам небыл, но зная подачу материала Ильи, должно быть действительно хорошие курсы. Обучение платные. Много хороших отзывов.
    Ответ написан
    Комментировать
  • Как организовать магазин на wordpress?

    Antonoff
    @Antonoff
    Разработчик
    WordPress + WooCommerce, просто отключите платежку, и ковыряйте админку, убирайте то что не надо. А там уже разберётесь.
    Ответ написан
    2 комментария