• Какие отличия между dto, entity, interface?

    notiv-nt
    @notiv-nt
    Как ваше ничего? Да, моё тоже
    ну DTO это формат данных которые передаются по сети
    https://docs.nestjs.com/controllers#request-payloads

    class UserDto {
      name: string;
      password: string;
    }
    
    @Post()
    createUser(user: UserDto) {}


    entity это typeorm'ная схема для бд
    https://typeorm.io/#/entities

    interface это схема объекта для typescript
    Ответ написан
    6 комментариев
  • Как научиться объяснять?

    @tereh
    На мой взгляд для понимания достаточно использовать всего две техники.

    1) Правильный порядок слов в предложении
    В книге "Бизнес-копирайтинг" Дениса Каплунова написано, что корявым порядком слов "страдают многие авторы, которые пишут со скоростью мысли и вечно боятся что-то упустить".

    2) Связывание предложений в тексте
    Предложения в тексте должны развивать тему, они должны быть связаны между собой, объединены основной мыслью автора. Есть цепная связь и параллельная. Подробнее тут:
    https://wordru.ru/o-sposobax-svyazi-predlozhenij-v...

    Главное - это практика. Я практикуюсь в комментариях на популярных сайтах.

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

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    надежнее всего, конечно, как Барри Креститель,
    но можно и полуакадемически подойти

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

    и всегда, если хочешь чтобы дело было сделано, подчиненного нужно переспрашивать, как он понял,
    а еще лучше - мнение по сказанному/описанному, тогда точно будет ясно понял ли и слушал ли вообще
    терминологию желательно использовать употребимую собеседником ("таски" а не "задачи" и т.п.)
    Ответ написан
    4 комментария
  • Как научиться объяснять?

    @dmshar
    Есть волшебный метод, который называется "декомпозиция". Мои наблюдения говорят, что 80% людей им просто не владеют. От слова - вообще. Ни в профессиональной, ни в обыдиной жизни. Но вот те, кто объясняют доходчиво - владеют им виртуозно.
    Заключается он в следующем. Если надо что-то объяснить, и это что-то чуть сложнее таблицы умножения (но и ее кстати тоже), задачу можно всегда разбить на части, из которых компонуется готовое решение. Вы должны на первой "итерации" объяснить ответ "с птичьего полета", как последовательностей этих самых подзадач, без углубления в детали, без подробных выкладок, что называется - "на пальцах". Причем, конечно, на языке понятном и воспринимаемом партнером. Когда (и если) он поймет вашу идею, поймет шаги - начинаете углубляться в объяснение конкретных подзадач. Вот тут уже начинаете использовать меньше "его" терминов, больше "своих". В какой-то момент он начинает сам понимать и самостоятельно додумывать решения. Тогда переходите к следующей подзадаче. Конечно, каждую подзадачу часто можно (а иногда - для очень сложных задач - и нужно) декомпозировать дальше. И так до того момента, когда вы можете объяснить полностью.
    Тогда вы и сами понимаете "roadmap" вашего объяснения, не теряете нить рассуждений и не сбиваетесь, и партнеру легче выстраивать "цепочку понимания", следя за ходом объяснения и сразу понимая, где именно он перестал улавливать мысль. Разумеется, при этом очень важно, что-бы собеседник был заинтересован в том, что-бы получить от вас объяснение, а не просто спросил чтобы "а поговорить".
    Ответ написан
    3 комментария
  • Как приукрасить правду так, чтобы твоё резюме заметили и предложили собеседование?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Добро пожаловать в суровую реальность, где среди джунов огромная конкуренция - десятки человек на одно место, а потому найти первую работу очень тяжело. Приукрашивания не помогут, так как этим занимаются все, а опытный тимлид это мгновенно различает. Просто продолжайте пытаться найти работу, продолжайте работать над повышением профессионального уровня, напишите показательный пет-проект, подкачайте профиль на GitHub и т.д. и т.п.
    Ответ написан
    Комментировать
  • В чём преимущества и недостатки установок через apt и snap?

    shurshur
    @shurshur
    Нужно понимать принципиальную разницу подхода:

    apt - установка из маленьких пакетов, вместе образующих большую и сложную систему, при этом софт может массово совместно использовать одни и те же файлы и библиотеки, благодаря чему экономится место на диске, оперативная память итд итп. Надо понимать, что apt - это пакетный менеджер для определённого вида пакетов (deb), хотя в своё время существовал вариант для rpm (может и сейчас существует, просто смысла в нём мало после появления yum).

    snap - установка большого приложения со всеми зависимостями, которые никак не использует остальной софт на этом же компьютере. Отсюда тратится лишнее место на диске и в оперативной памяти. Зато никаких проблем с зависимостями, плюс snap работает в любых системах и не завязан на конкретный менеджер пакетов и собственно пакетный формат.

    snap по большому счёту часто используют для установки тяжёлых приложений, которые может бысть сложно опакетить, особенно учитывая разнообразие присутствующих в мире дистрибутивов (debian/ubuntu и их клоны) разных версий. В то время как большинство штатного общеиспользуемого софта чаще распространяют в виде пакетов, идущих в составе дистрибутива или отдельно (в том числе в виде разных собранных под разные варианты систем пакетов).
    Ответ написан
    7 комментариев
  • Чтение электрических схем?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Уровень физики - Заняться физикой - основы школьной хватит для начала. Закон Ома, основные формулы параллельного/последовательного соединений, правила Кирхгофа, полупроводники, p-n переход
    2) Уровень детальки - Понять как работают отдельные компоненты, зачем нужны, типовые и нетипичные варианты использования
    3) Уровень куска схемы - Читать и попытаться вникнуть в описание схем - зачем в ней тот или иной элемент, понимать как действуют несколько элементов сообща, понимать типичные узлы.
    4) Уровень практики и синтеза - Пытаться проектировать/собирать свои схемы на основе опыта. Собирать или моделировать, проверять варианты.
    Читать статьи/Смотреть видео для начинающих, в .т.ч. из категории "для чайников" - это для быстрого старта, там часто объясняется "на пальцах"
    Ответ написан
    Комментировать
  • Куда движется индустрия?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    1) Индустрия электроники огромна. Сказать, что вот прямо сразу весь мир прыгнул на 32 битные армы - это солгать. Более правильно сказать, что популярные блоггеры с производительностью пулемета штампуют статьи об stm32, при этом уровня "мигаем ледом".

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

    2.a) 32битный монстр с линуксом в стиралке - (и управление стиралкой, написанное на питоне, в тренде времени) - это сумасшествие. Потому что вместе с линуксом и питоном он притащит за собой кучу багов на всех уровнях, необходимость обновлений и прочее админство. Если на телефоне это еще покатит (семь бед - один резет, а через пару лет аппарат в помойку), то в стиралке, один неверно записанный бит может устроить потоп или даже легкий дестрой. Следовательно, когда речь идет об управлении какими-то технологическими процессорами (и о материальной ответственности), индустрия будет консервативна.

    Основные принципы электроники сейчас - максимально запихивание перифирии в один чип. Этот тренд можно проследить с 1970х - начинали с огромных плат, где процессор - отдельно, память - отдельно, АЦП - снова отдельно, куча корпусов для развязки устройств на шине и так далее. Постепенно все эти запчасти стали помещаться в один корпус. Например - ESP8266 - это процессор, память, wi-fi и куча другой периферии, засунутые в один корпус.

    Это дает снижение энергопотребления, повышение производительности, удешевляет платы.
    Ответ написан
    8 комментариев
  • Название алгоритма для генерации не похожих смиволов?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    При генерации кодов используют алфавит, лишённый похожих символов.
    Исключены и буквы, похожие на цифры, и цифры, похожие на буквы.

    Например: 3479BDFGHJKLMNPRSTWXZ

    См. также: Homoglyph
    Ответ написан
    Комментировать
  • Насколько Golang подходит для больших проектов?

    Насколько Golang подходит для больших проектов?
    У него это на генетическом уровне. Один из его создателей уже имел опыт создания крайне успешного языка программирования, который пошёл довольно хорошо в крупные проекты. И ещё в создании операционной системы поучаствовал. Как раз на это языке. Очень успешная ОСь получилась.

    насколько уместно использовать Go в большом кровавом энтерпрайзе-монолите на миллион строк кода со всякими REST, кэшами, работой с базой и так далее?
    У него изначально архитектурно заложено быть в лютом кровавом энтерпрайзе и даже в монолите на туеву гору строк кода. Любая СУБД по сути монолит. И на Go наверное с десяток наберётся довольно успешных баз, которые применяются в энтерпрайзе.

    Понятное дело, что для микросервисов язык подходит как нельзя кстати
    Микросервисы это методология разработки для больших, часто разрозненных проектов. И по большому счёту индиффирентно на каком ЯП будет сверстан микросервис. Хоть на ассемблере, если это оправдано. Обычно микросервисы это про несколько ЯП на проект.

    однако интересен практический опыт стартапного плана, возможные подводные камни и недостатки.
    Как бы для стартапа не рекомендуется микросервисы прям сразу. Его бы хотя бы оживить и заставить как задумывалось работать. А потом уже переходить к микросервисам. Но это отступление. Беда может выползти из прошлых навыком и знаний. Golang реализует свою модель ООП, которая не совсем понятная для тех кто писал на ООП ориентированных языках (Java, Python. PHP). Очень туго приходится после языков с динамической типизацией. Модель параллельного программирования тоже многим не сразу даётся.
    Ответ написан
    4 комментария
  • Насколько Golang подходит для больших проектов?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    У go одно применение - highly network intensive applications. GRPC, protobuf, триллионы rpc вызовов в секнду. Применяется он когда есть или сразу подобные требования или бизнес вырос до этого уровня.

    Для стартапов чаще всего требуются Rapid Applcation Development фреймворки. Язык при этом скорее вторичен. Можешь быстро слепить - молодец. Но чаще выбирать приходится из того что знаешь.

    В кровавом Энтерпрайзе в основном правит старичок Java (за редким исключением) по тому что есть требования к заменяемости сотрудников и большой легаси ландшафт проектов, которые переписывать никто не будет
    Ответ написан
    1 комментарий
  • Можно ли как то получить текущий seed в random?

    ScriptKiddo
    @ScriptKiddo
    Сид получить навряд-ли можно. Зато можно сохранить текущее состояние генератора и восстанавливать его когда потребуется

    import random
    
    old_state = random.getstate()
    print(random.random())
    
    random.setstate(old_state)
    print(random.random())
    
    # You can also restore the state into your own instance of the PRNG, to avoid
    # thread-safety issues from using the default, global instance.
    prng = random.Random()
    prng.setstate(old_state)
    print(prng.random())

    OUT

    0.845561713648235
    0.845561713648235
    0.845561713648235


    Source: https://stackoverflow.com/a/5012724
    Ответ написан
    Комментировать
  • Есть какая-нибудь книга как продвигать it project или статья?

    @Lobanov
    Самая первая книга, которую просто для ознакомления стоит прочитать - Lean StartUp, там конечно воды дохрена, но ключевая мысль - надо все тестить.

    По факту, перед написанием кода надо было задаться вопросом - для кого этот продукт? Кто целевая аудитория?

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

    Поэтому, перво на перво, выходим в поле и общаемся с целевой аудиторией, выясняем, какие боли и проблемы у них есть. Ищем эту ЦА, проводим интервью и далее уже вырисовывается картинка того, что хотят люди, затем делаем минимальную версию, которая может выглядеть как говна кусок, но если она помогает людям решить проблему, докручиваем, дальше повторяем итерацию до бесконечности!

    Все.

    Проще всего вам взять таргетолога, зафигарить лендосик, налить таргета на лендос, собрать контакты, провести хотя бы 50 интервью, лучше конечно 100, для чистоты данных. Сделать аналитику этих интервью и людей, которых вы интервьюировали и только после этого приступать к написанию кода. Это позволит вам сэкономить сотни, а то и тысячи часов работы.

    Если вы начали писать код для решения своей личной задачи, прикинуть, где могут находиться люди с аналогичными вашими проблемами, которые вы сейчас решаете с помощью написанного инструментария. Пойти туда и показать этим людям ваше решение.

    Кстати, вот недавно курс попадался https://simulator.gopractice.ru/ хз конечно норм он или нет, но просто для информации, может что-то вам зайдет с этого сайта.
    Ответ написан
    1 комментарий
  • Как решить данную задачу на SQL: найти максимальное окно между событиями?

    @Fallenyasha
    Посмотрите в сторону оконных функций LEAD и LAG

    SELECT max(datediff(date_value, (lead(date_value) over (order by date_value))))
    Ответ написан
    Комментировать
  • Django и диаграммы?

    @bacon
    1. Сделать обычную html таблицу
    2. Освоить Plotly (возможно Dash)
    3. Сгенерировать на клиенте, бери любую js библиотеку, например Chart.js, django предоставляет данные, js генерирует диаграмму на клиенте.
    4. Сгенерировать на сервере, бери matplotlib или подобные.
    Ответ написан
    Комментировать
  • Я новичок в Python. Как можно заполнить матрицу по определенному общему условию,когда заполняется только 1 и 3 строка нулями. Размер 5*5?

    @Wispik
    В цикле проверку сделай
    if i in (0, 2):
    # заполняешь нулями
    else:
    #заполняешь как обычно
    Ответ написан
    Комментировать
  • Сделать js фоном?

    sharomet
    @sharomet
    Front-End
    Как сделать, чтобы данный скрипт был фоном страницы7

    Если вам нужно PARTICLES WRITE TEXT сделать фоном то:
    Скрипт добавляет элемент canvas на страницу, добавьте позиционирование этому элементу + z-index: -1, а всё содержимое сайта засуньте в блок с position: relative z-index: 1.
    В коде реализуется одной строкой:

    В коде не реализуется одно строкой. Скрипты подключаются одной строкой. А реализуются вот так:
    60082d156764f422786075.png
    И к стати, для мобильных устройств вам придётся его так не слабо допиливать)
    Ответ написан
    Комментировать
  • Как достать комментарии из под поста Instagram?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Комментарии лежат в скрипте в коде страницы

    import requests
    import json
    import re
    
    
    headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'}
    
    r = requests.get('https://www.instagram.com/p/CKJ4986gdbW/', headers=headers)
    
    script = re.search(r'window._sharedData = (.+?);</script>', r.text).group(1)
    data = json.loads(script)
    
    edges = data['entry_data']['PostPage'][0]['graphql']['shortcode_media']['edge_media_to_parent_comment']['edges']
    for edge in edges:
    
        text = edge['node']['text']
        author = edge['node']['owner']['username']
    
        print(author, text)
    Ответ написан
    1 комментарий
  • Какими способами можно удалить значения из словаря до определенного?

    adugin
    @adugin Куратор тега Python
    Универсальный подход, который годится для любых типов ключей:
    from itertools import dropwhile
    
    key = '5'
    state = {1: 'a', 'abc': 'b', 3.14:'c', None: 'v', '5': 'b', '6': 'n', '7': 'm'}
    
    new_state = dict(dropwhile(lambda item: item[0] != key, state.items()))

    Или так:
    for k in state.copy():
        if k != key:
            del state[k]
        else:
            break
    Ответ написан
    Комментировать