• Как в Angular достучаться до масива элементов?

    Jeer
    @Jeer
    уверенный пользователь
    Можно заморочиться и диву назначить айдишник, затем получить его внутренний html непосредственно в контроллере, но этот подход в корне неверный.
    У вас есть массив items, через него и осуществляйте управление, добавьте необходимые свойства. А уже через эти свойства влияйте на html. Например, добавляете свойство color и пишете так:
    <a [ngClass]="text .color" href="">{{text .item}}</a>

    Синтаксис могу напутать, но что-то вроде того.
    Ответ написан
    Комментировать
  • Можно ли создать свою программу?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, сделать, разумеется, можно.
    Если одним из ключевых языков требуется использовать javascript, то можете начать с веб версии.
    Для нативных платформ нужно будет писать свои клиенты, например, мобильные приложения или приложение для настольного компьютера. Для них на js будет тяжело и не очень хорошо, но веб версию осилить сможете.
    Начинайте с простых вещей, вначале это просто текстовый файл. Затем будете добавлять свои хотелки с картинками и т.д. в порядке очереди.
    Туториалов, чтобы сделать простой чат выше головы, вначале гуглите "сделать чат на node js"
    Ответ написан
    1 комментарий
  • Как сделать синхронизацию?

    Jeer
    @Jeer
    уверенный пользователь
    Не знаю, существует ли какая-то серебряная пуля в синхронизации данных, думаю, что всё довольно индивидуально в зависимости от проекта.
    Ваша идея вполне жизнеспособна, реализовывайте.
    От себя могу добавить, что не нужно первоначальные данные грузить через SignalR, его можно использовать лишь для обновления данных.
    Например, действительно ли приложению нужно сразу знать весь список пользователей? Да и нужен ли вообще целый список? В любом случае, когда уже пользователи есть, при добавлении/обновлении какого-то из пользователей можно через SignalR отправлять на все клиенты не только уведомление, но и все данные по пользователю сразу. Конечно, если нет массового обновления всех пользователей, тогда этот вариант не прокатит.
    В общем, всё сугубо индивидуально
    Ответ написан
  • Почему картинка на сохраняет пропорции в браузере safari?

    Jeer
    @Jeer
    уверенный пользователь
    Добрый день,
    А как вы задаёте transform? )
    Некоторые свойства действительно работают по разному в разных браузерах. Если у вас проблема именно "transform safari", так и пишете в гугле и по первым ссылкам выдаётся что-то вроде такого:
    -webkit-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);


    Так же поищите специальные сайты, которые проверяют/дописывают кроссбраузерность для css
    Ответ написан
    Комментировать
  • Возможно ли сделать карусель с разным временем задержки переключения между слайдами?

    Jeer
    @Jeer
    уверенный пользователь
    Готовое решение вряд ли найдётся, я о таких не слышал.
    Вам необходимо будет допилить какую-либо карусель под свои нужды, задача не сложная
    Ответ написан
    Комментировать
  • Как пользоваться captcha hearvest?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, я не работал с твоей капчей, но как-то ставил гугл ре-Капчу. И раз уж пока ответов нет, то посмотрни про неё.
    Вот документация, там всё довольно просто https://developers.google.com/recaptcha/docs/v3
    Строго говоря, я работал с пакетом для ангуляра ng-recaptcha, но это не имеет особого значения
    Там так же есть site-key, его можно получить при регистрации https://www.google.com/recaptcha/admin
    Там же дополнительно указываются домены и владельцы этой капчи, видимо, в твоём случае solve url должен указываться при регистрации, но далее в твоём js коде оно вылезать нигде не должно. Капча просто не будет работать на других доменах
    Ответ написан
  • Для чего нужны побитовые операции?

    Jeer
    @Jeer
    уверенный пользователь
    В первой главе книги Графика на JavaScript Рафаэлло Чекко есть отличные примеры, как это всё используется, советую к ознакомлению
    Ответ написан
    Комментировать
  • Воспользовались бы вы услугами по поиску инвесторов для вашего проекта?

    Jeer
    @Jeer
    уверенный пользователь
    готовы ли начинающие проекты - или даже растущие - воспользоваться услугами, которые сокращали бы дистанцию между ними и потенциальными инвесторами?

    оно не безвозмездно

    Тема интересная. Единственное, я не нашел хотя бы приблизительных условий. Насколько понимаю, либо доля в проекте, как тогда это считается. Либо, аналогично найму других консалтингов - почасовая оплата, либо фиксированная ставка, если уже отработана методология. А именно это самое важное в вопросе будут пользоваться или нет.
    Три года прошло, но я всё ж поинтересуюсь, сделали что-то по этой теме?

    Хотя вот встретил фразу
    Долю никто не просит, да и денег за услуги тоже (это относится к "посевным" проектам)
    - стало ещё непонятнее. В чём тогда ваш профит?
    Ответ написан
  • Почему не устанавливается npm?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, нашли решение проблемы?
    У меня аналогичная, в проекте несколько разработчиков, один добавил пакет, у него завелось. У меня перестало собираться. Нашли различие в версии ноды, я поставил последнюю, такая ошибка началась. Поставил последнюю стабильную, аналогичная ошибка. Удалил/переустановил, ничего не помогает больше.
    Чёртова нода
    Ответ написан
    Комментировать
  • Приложение на телефон(HTML,CSS,JS) или альтернатива Phonegup Build?

    Jeer
    @Jeer
    уверенный пользователь
    Так вот же 30 минутный туториал https://habr.com/ru/company/mailru/blog/450504/
    Ответ написан
    Комментировать
  • Как найти проекты или репозитории, где показана правильная разработка?

    Jeer
    @Jeer
    уверенный пользователь
    Привет,
    Словосочетание "правильная разработка" порождает лишь неразбериху.
    К примеру, ты делаешь какой-то компонент на фронте, на бекенде довольно стандартный CRUD. Но ты можешь сделать один метод Edit, а можешь сделать два метода Create и Update. И то и то правильно в зависимости от ситуации. Дальше, к примеру в методе Create у тебя проставляются пользователь, создавший запись и какое-то ещё поле, которое заполняется на бекенде. При этом, можно использовать одну и ту же модель во всех методах, Details/Create/List/Update. При этом, в метод Create попадёт модель с лишними полями, тот же пользователь, создавший запись. Кто-то скажет, это неправильно, нужно под все методы делать свои модели, если поля не используются, не должно быть возможности их передать. А кто-то скажет, неправильно плодить лишние сущности, пусть поле не используется, оно всё равно на бекенде перезаписывается. А кто-то скажет, что вообще не нужна даже одна промежуточная сущность, можно использовать сущность, которая генерится каким-нибудь инструментом с БД, так как проект представляет собой закрытую админку для внутреннего пользования.
    Немного сумбурно, но, надеюсь, понятно.
    Дальше идёт расхождение в инструментах, к примеру, требуется делать валидацию входящей модели. Можно использовать Fluent валидацию или использовать декларативный синтаксис через Data Annotation. И то правильно и это правильно, в одном проекте, разумеется, должно использоваться что-то одно, но подход и синтаксис различаются очень сильно. Или так же, необходимо использовать IoC/DI, а инструментов под это несколько и все правильные.
    Что касается архитектуры. Опять же, есть несколько подходов и несколько стилей. Нельзя сказать, что один из них правильный, а другой неправильный. Я видел несколько отвратительных проектов, написанных в ООП стиле. При этом, не могу сказать. что подход неправильный и нет хороших проектов, написанных по такому принципу. Я видел огромный проект, отлично написанный в процедурном стиле со слоёной архитектурой контроллер/модель/интерфейс/сервис/энтити. Даже представить себе не могу, если бы его попытались сделать в Domain Driven Design или в компонентном стиле, типа микросервисов.
    В общем, нет в этом деле серебряной пули.
    Что касается основных "правильных" вещей. Есть спецификации языка и им надо следовать. Если взять, к примеру, ангуляр. То в нём есть свои стандарты, есть сайт с документацией, в которой прописаны правила наименований и прочее. Им надо следовать. Если взять .net, то при выходе новой версии, вместе с ней выходит и спецификация на новые фишки. Так же, в нормальных проектах ведётся свой файл со спецификацией, в котором указаны, в каком порядке следует размещать публичные/приватные поля, что один публичный класс должен быть в отдельном файле и имя файла должно совпадать с именем класса. Так же, при выходе новой версии IDE, под .net это visual studio, внутрь уже встраиваются подсказки, например, если ты написал класс с маленькой буквы, студия это подчеркнёт и укажет, что наименование класса должно быть в PascalCase. В общем, этому надо следовать. Могу скинуть свои файлы на почту.
    Могу так же скинуть свой проект на гитхабе, но, как я уже говорил, не факт, что архитектура из того проекта подойдёт, когда вы придёте в другую разработку, там архитектор скажет "это неправильно, мы не так делаем"
    Ответ написан
    Комментировать
  • Как вам идея поднять электронику России с колен?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, к чёрту хейтеров.
    Как-то я наткнулся на амперку, они запилили свой продукт, iskra-js. Соль в том, что они взяли открытый исходный код эспруино (ардуино на js). Очень круто его доработали. Взяли часть готовых библиотек, многие уже перепилили на свой лад. У них есть удобная js консоль, в которую можно в реальном времени писать команды и они выполняются на искре - это намного удобнее, чем заливать код туда-сюда как в ардуино. Разумеется, цена их изделия выше, чем у ардуино.
    Самое главное, они сделали ардуино-совместимые шилды, то есть, любая хрень (датчик) для ардуино с алиэкспресса подходит для искры. Даже более того, там есть плюшки по питанию, можно работать на одной плате и с 2.1 и с 5 вольтовыми.
    Касаемо основного вопроса, "электроника в России" - вроде как производство этих плат было налажено под Питером, но копните эту историю поглубже, я не уверен.
    К чему я вообще это всё рассказываю. Ребята крутые, идея крутая, они пиарятся как могут без миллиардных бюджетов, но обороты у них далеко не мировые, условно, это один маленький магазин. На этом примере "поднять электронику России с колен" звучит немного пафосно, возможно отсюда и хейтеры ) ну и да, смотря на их развитие, действительно эта тема интересна малому количеству людей, а отсутствие рынка очень пагубно влияет на бизнес
    Ответ написан
    Комментировать
  • Raspberry Pi 4 не выдает картинку после переподключения к монитору?

    Jeer
    @Jeer
    уверенный пользователь
    Если всё точно рабочее, попереключайте в пункте меню на мониторе, бывает он не с того вывода считывает, hdmi/vga/dvi режимы
    Ответ написан
    Комментировать
  • Как в Angular правильно реализовать функционал ролей пользователя с разным интерфейсом?

    Jeer
    @Jeer
    уверенный пользователь
    Привет.
    Вопрос, на самом деле, довольно стандартный, удивлён, что никто ничего не отвечает.
    1. Сервис пользователя (говорю только про ангуляр) должен быть глобальным. То есть, после аутентификации с бекенда у вас должна придти полная модель пользователя, включающая список доступных ролей (реализации тут могут быть совершенно различные). Глобальный сервис позволяет получить набор ролей пользователя из любого места программы.
    2. Ограничения на страницу вешаются через RouteGuard. Почитайте подробнее в поисковике. По сути, там обычный класс, в который вы прокидываете зависимость от глобального сервиса пользователя и внутри разбираете, какие роли присутствуют и может ли попасть на текущую страницу
    Включается этот волшебный охранник в роутах, например:
    {
                                path: 'recipient',
                                component: RecipientComponent,
                                canActivate: [LoginRouteGuard],
                                data: {roles: ['Admin'], title: 'Список получателей'}
                            }

    3. Guard запрещает именно переход по какому-то роуту, если нет доступных ролей. Саму же кнопку сделать неактивной, либо невидимой сделать труда не представляет? Так же прокидываем глобальный сервис пользователя, пишем метод проверки на определённую роль (роли), вешаем на visible или disabled
    4. Есть момент с содержимым. Если есть такая возможность, то желательно не намешивать в одном компоненте разные представления, то есть, делать разные компоненты и роуты, например OrdersManagers, OrdersAdmins. Так проще работать. Если нет такой возможности, например, с дашбордом, делаете корневой компонент, в него уже включаете через ngIf или ngSwitchCase все доступные компоненты для разных ролей. Естественно, с проверкой, что требуется отображать
    <div *ngSwitchCase="'WidgetCargoInworkComponent'">
                    <app-widget-cargo-inwork></app-widget-cargo-inwork>
                </div>
                <div *ngSwitchCase="'WidgetInvoicesNotpaidComponent'">
                    <app-widget-invoices-notpaid></app-widget-invoices-notpaid>
                </div>
                <div *ngSwitchCase="'WidgetWaybillsComponent'">
                    <app-widget-waybills></app-widget-waybills>
                </div>
    Ответ написан
    1 комментарий
  • Как настроить автозапуск node.js сервера в Ubuntu Core?

    Jeer
    @Jeer Автор вопроса
    уверенный пользователь
    Кому интересно, аналогичную настройку сдлеал на raspbian, на нём и остался, видимо, чего-то не то с дистрибом убунту было
    Ответ написан
    Комментировать
  • Почему не подключается service worker от pwabuilder?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, я не особо разбираюсь, когда делал сервис воркер, работал с этим гайдом
    https://habr.com/ru/company/mailru/blog/450504/

    Потом на другом проекте, на ангуляре делал просто npm-install, там всё сразу взлетело
    Ответ написан
    Комментировать
  • ASP.NET как узнать какой JS-скрипт исполняется сейчас?

    Jeer
    @Jeer
    уверенный пользователь
    можете написать слово debugger в js в том месте, где хотите точку останова. Тогда при включенных тулзах (f12 в хроме) выполнение будет автоматически остановлено на этой строчке. Ничего искать не надо.
    Вообще, ваш вопрос не относится к asp.net, только к студии.
    Есть еще разные штуки, например, можно нажать на функцию правой кнопкой и "найти все ссылки", но в студии это работает только для js файлов, не ищет, если вызов из html.
    В целом, попробуйте перейти на ангуляр/реакт. Как поймёте структуру, все ваши функции будут находиться в одном месте, не надо будет ничего искать.
    Работа с js/html лучше реализована в PHPStorm, чем в вижуал студии, сейчас я пишу бекенд на .net в VS, а фронтовую часть в шторме (ангуляровский проект)
    Ответ написан
    Комментировать
  • С помощью каких яп в 2020 делают браузерные игры?

    Jeer
    @Jeer
    уверенный пользователь
    Рекомендую к прочтению книгу Гравика на JavaScript
    https://vk.com/wall-54530371_12135
    (первую главу можно пропустить)
    Ответ написан
    Комментировать
  • Из-за чего происходит зацикливание sql скрипта?

    Jeer
    @Jeer Автор вопроса
    уверенный пользователь
    Так, кому интересно, поставил WAITFOR DELAY '00:00'; после апдейта
    Ответ написан
    Комментировать
  • Разработчик недисциплинированно трекает время. Что делать?

    Jeer
    @Jeer
    уверенный пользователь
    Очень много интересного почерпнул в этом треде.
    Казалось бы, автор задаёт один простой вопрос "почему люди не отмечают затраченное время?". И столько пустой болтовни, ненужных советов, не относящихся к этому вопросу. Размусоливаний каких-то ситуаций, которые у них на работе, но, опять же, абсолютно не относящихся к данному вопросу. Или переход к другой теме, например, много было про оценку задач, да, это интересные всё темы, но это опять же не относится к теме данного поста.
    Автор меня приятно удивил, пытаясь вначале отвечать всем и по существу, но уже устал к концу, хотя верные ответы находятся не на самых залайканных ответах.
    Одно время я поработал в компании, где после каждой задачи надо было писать отчёт, прикладывая листинг кода! так как реально вообще другой отдел занимался сдачей отчётности (по списанным часам из таких отчётов выставлялся счёт заказчикам) и они даже не в курсе были, чем занимаются программисты. Большего маразма я в жизни не встречал. И когда я стал работать в других компаниях, где надо просто списать затраченное время, я понял, что это прям намного проще и понимаю, зачем это надо менеджменту.
    Но тут встретил людей, которые этого не понимают. То есть, в текущей конторе не было такого, что надо списывать время. Многие (из старичков) откровенно саботировали этот процесс, сопротивление просто громадное, одно из лидирующих мнений было, примерно, следующее: "я раньше не списывал время и сейчас не собираюсь, потому что мне это не надо". Понятное дело, что в такой ситуации весь менеджмент и планирование в полной жопе. Ну, мне понятно. И тут возникает главная загвоздка и ответ на этот тред. Вам необходимо, во-первых, правильно объяснить, зачем это надо. Во-вторых, сделать учёт времени неотъемлемой частью процесса.
    Аргументов по первому пункту тут уже приводилось много и варианты для конкретного человека могут быть довольно специфичные. Что если сотрудник будет просто списывать время, то уже будет видна его загрузка и можно меньше задач ставить в спринт. Или другой пример, один сотрудник сидит на каком-то проекте и ни холодно ни жарко другим людям списывает он время или нет, но появляется какая-то задача, надо ему сделать апи для другого сотрудника. И эта задача блокирующая, но он её не делает. Отговариваясь на митингах, что занимался другим. "Дружок, я не вижу, чем ты занимаешься, если нет списанного времени, я могу считать, что ты ничем не занимаешься, но при этом блокирующая задача перенесена в другой спринт" - разбор полётов и обоснование для списания времени.
    Есть такой тип людей, где-то тут тоже мелькало "я забиваю на списанное время и в конце недели просто рисую цифры с потолка, чтобы отстали". Такое тоже присутствует. Это низкая культура и низкая дисциплина. И с этим тоже можно работать (это относится ко второму пункту). Так же в этом треде предлогались решения, кто-то сказал, что тимлид сказал списывать время в конце дня, как закончил работать. Ну, запретите на программном уровне списывать время за предыдущие дни. Справедливости ради стоит отметить, что иногда вечером не всегда успеваешь это делать, то есть, можно сделать так, что списывать время можно предыдущий день можно до дейли митинга (до 10 утра, к примеру). Если это не происходит, то в присутствии всей команды уточнять, чем человек занимался вчера и напирать на то, что вместо того, чтобы быстренько занести своё время теперь этот человек крадёт время всей команды.
    Резюмируя, первое, надо доходчиво объяснить, зачем это нужно работнику (не вам, а ему), второе, необходимо сделать списание времени частью рабочего процесса
    Ответ написан
    4 комментария