Задать вопрос
  • Какие советы по созданию резюме вы можете дать начинающим и не очень начинающим специалистам?

    paran0id
    @paran0id
    Умный, но ленивый
    Исходя из моего опыта по обе стороны баррикад:

    • Будь готов ответить на вопросы по каждой технологии, указанной в резюме. Не можешь ответить - не указывай.
    • Не бравируй излишне, но и не скромничай ни в коем случае. Это и зарплатных ожиданий касается.
    • "Знание linux на уровне администратора" и "ставил опенофис на убунту" - это не одно и то же.
    • Есть смысл расписать подробно одно-два последних места работы.
    • То, что было больше пяти лет назад, не интересно никому.
    • Не расписывай свои слабости, лучше подтяни их.
    • Помни, что искать резюме будут роботы по ключевым словам и параметрам, а принимать решения будут люди.
    Ответ написан
    Комментировать
  • Можно ли использовать TCP протокол для игрового сервера?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Можно ли использовать TCP протокол для игрового сервера?

    Да, можно.
    Насчёт скорости - она зависит от того как идёт маршрутизация до клиента и обратно
    Ответ написан
    Комментировать
  • Каким должно быть регулярное выражение для email по заданным условиям?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Можешь выбросить все эти свои собственно выдуманные правил для email, потому что существует RFC 822,который определяет как в действительности должны выглядеть email-адреса.
    Нормальные программисты никогда не проверяют email по regexp
    https://en.wikipedia.org/wiki/Email_address
    Valid email addresses
    simple@example.com
    "user@name"@example.com
    very.common@example.com
    disposable.style.email.with+symbol@example.com
    other.email-with-hyphen@example.com
    fully-qualified-domain@example.com
    user.name+tag+sorting@example.com (may go to user.name@example.com inbox depending on mail server)
    x@example.com (one-letter local-part)
    example-indeed@strange-example.com
    test/test@test.com (slashes are a printable character, and allowed)
    admin@mailserver1 (local domain name with no TLD, although ICANN highly discourages dotless email addresses[10])
    example@s.example (see the List of Internet top-level domains)
    " "@example.org (space between the quotes)
    "john..doe"@example.org (quoted double dot)
    mailhost!username@example.org (bangified host route used for uucp mailers)
    user%example.com@example.org (% escaped mail route to user@example.com via example.org)
    user-@example.org (local part ending with non-alphanumeric character from the list of allowed printable characters)
    postmaster@[123.123.123.123] (IP addresses are allowed instead of domains when in square brackets, but strongly discouraged)
    postmaster@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334] (IPv6 uses a different syntax)

    Invalid email addresses
    Abc.example.com (no @ character)
    A@b@c@example.com (only one @ is allowed outside quotation marks)
    a"b(c)d,e:f;gi[j\k]l@example.com (none of the special characters in this local-part are allowed outside quotation marks)
    just"not"right@example.com (quoted strings must be dot separated or the only element making up the local-part)
    this is"not\allowed@example.com (spaces, quotes, and backslashes may only exist when within quoted strings and preceded by a backslash)
    this\ still\"not\\allowed@example.com (even if escaped (preceded by a backslash), spaces, quotes, and backslashes must still be contained by quotes)
    1234567890123456789012345678901234567890123456789012345678901234+x@example.com (local-part is longer than 64 characters)
    i_like_underscore@but_its_not_allowed_in_this_part.example.com (Underscore is not allowed in domain part)
    QA[icon]CHOCOLATE[icon]@test.com (icon characters)

    Твои правила ломаются больше чем в половине приведённых примеров

    Если нужен реальных регэксп для имейла, то вот ответ:
    https://stackoverflow.com/questions/201323/how-can...
    // derivative of work with the following copyright and license:
    // Copyright (c) 2004 Casey West.  All rights reserved.
    // This module is free software; you can redistribute it and/or
    // modify it under the same terms as Perl itself.
    
    // see http://search.cpan.org/~cwest/Email-Address-1.80/
    
    private static string gibberish = @"
    (?-xism:(?:(?-xism:(?-xism:(?-xism:(?-xism:(?-xism:(?-xism:\
    s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^
    \x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))
    |(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+
    |\s+)*[^\x00-\x1F\x7F()<>\[\]:;@\,.<DQ>\s]+(?-xism:(?-xism:\
    s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^
    \x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))
    |(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+
    |\s+)*)|(?-xism:(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(
    ?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?
    :\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x
    0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*<DQ>(?-xism:(?-xism:[
    ^\\<DQ>])|(?-xism:\\(?-xism:[^\x0A\x0D])))+<DQ>(?-xism:(?-xi
    sm:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xis
    m:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\
    ]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\
    s*)+|\s+)*))+)?(?-xism:(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?
    -xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:
    \s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[
    ^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*<(?-xism:(?-xi
    sm:(?-xism:(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^(
    )\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(
    ?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))
    |)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*(?-xism:[^\x00-\x1F\x7F()<
    >\[\]:;@\,.<DQ>\s]+(?:\.[^\x00-\x1F\x7F()<>\[\]:;@\,.<DQ>\s]
    +)*)(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))
    |(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:
    (?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s
    *\)\s*))+)*\s*\)\s*)+|\s+)*)|(?-xism:(?-xism:(?-xism:\s*\((?
    :\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x
    0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xi
    sm:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*
    <DQ>(?-xism:(?-xism:[^\\<DQ>])|(?-xism:\\(?-xism:[^\x0A\x0D]
    )))+<DQ>(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\
    ]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-x
    ism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+
    )*\s*\)\s*))+)*\s*\)\s*)+|\s+)*))\@(?-xism:(?-xism:(?-xism:(
    ?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?
    -xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^
    ()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s
    *\)\s*)+|\s+)*(?-xism:[^\x00-\x1F\x7F()<>\[\]:;@\,.<DQ>\s]+(
    ?:\.[^\x00-\x1F\x7F()<>\[\]:;@\,.<DQ>\s]+)*)(?-xism:(?-xism:
    \s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[
    ^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+)
    )|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)
    +|\s+)*)|(?-xism:(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:
    (?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((
    ?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\
    x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*\[(?:\s*(?-xism:(?-x
    ism:[^\[\]\\])|(?-xism:\\(?-xism:[^\x0A\x0D])))+)*\s*\](?-xi
    sm:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:
    \\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(
    ?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+
    )*\s*\)\s*)+|\s+)*)))>(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-
    xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\
    s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^
    \x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*))|(?-xism:(?-x
    ism:(?-xism:(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^
    ()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*
    (?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D])
    )|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*(?-xism:[^\x00-\x1F\x7F()
    <>\[\]:;@\,.<DQ>\s]+(?:\.[^\x00-\x1F\x7F()<>\[\]:;@\,.<DQ>\s
    ]+)*)(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+)
    )|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism
    :(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\
    s*\)\s*))+)*\s*\)\s*)+|\s+)*)|(?-xism:(?-xism:(?-xism:\s*\((
    ?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\
    x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-x
    ism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)
    *<DQ>(?-xism:(?-xism:[^\\<DQ>])|(?-xism:\\(?-xism:[^\x0A\x0D
    ])))+<DQ>(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\
    \]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-
    xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)
    +)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*))\@(?-xism:(?-xism:(?-xism:
    (?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(
    ?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[
    ^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\
    s*\)\s*)+|\s+)*(?-xism:[^\x00-\x1F\x7F()<>\[\]:;@\,.<DQ>\s]+
    (?:\.[^\x00-\x1F\x7F()<>\[\]:;@\,.<DQ>\s]+)*)(?-xism:(?-xism
    :\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:
    [^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+
    ))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*
    )+|\s+)*)|(?-xism:(?-xism:(?-xism:\s*\((?:\s*(?-xism:(?-xism
    :(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\(
    (?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A
    \x0D]))|)+)*\s*\)\s*))+)*\s*\)\s*)+|\s+)*\[(?:\s*(?-xism:(?-
    xism:[^\[\]\\])|(?-xism:\\(?-xism:[^\x0A\x0D])))+)*\s*\](?-x
    ism:(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism
    :\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:\s*(?-xism:(?-xism:
    (?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|)+)*\s*\)\s*))
    +)*\s*\)\s*)+|\s+)*))))(?-xism:\s*\((?:\s*(?-xism:(?-xism:(?
    >[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0D]))|(?-xism:\s*\((?:
    \s*(?-xism:(?-xism:(?>[^()\\]+))|(?-xism:\\(?-xism:[^\x0A\x0
    D]))|)+)*\s*\)\s*))+)*\s*\)\s*)*)"
      .Replace("<DQ>", "\"")
      .Replace("\t", "")
      .Replace(" ", "")
      .Replace("\r", "")
      .Replace("\n", "");
    
    private static Regex mailbox =
      new Regex(gibberish, RegexOptions.ExplicitCapture);
    Ответ написан
    4 комментария
  • Как убрать зависание WinForms во время выполнения цикла?

    Ternick
    @Ternick
    Вам нужно использовать потоки.
    Циклы, исполнение других сложных функций внутри потока gui вызывает зависание и падение программы из-за блокировки основного потока приложения, в результате чего программа не может обрабатывать другие события.
    Примеры:
    https://docs.microsoft.com/en-us/dotnet/api/system...
    Ответ написан
    4 комментария
  • Как происходит передача хода от игрока к игроку в компьютерной настольной игре?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Видимо параграф структуры, данные и алгоритмы вы пропустили.
    Я не знаю какого ответа вы ожидаете, в абстрактной игре это будет: сменить индекс текущего игрока и начать ход заново.
    Ответ написан
    Комментировать
  • Стоит ли делать для своей игры лаунчер?

    @Drno
    Лаунчер удобен когда неск игр или там есть полезные функции. на стабильность это никак не влияет, чисто удобство юзеров

    PS мнение юзера))
    Ответ написан
    Комментировать
  • Вопрос перевода с SQL на команды SQLAlchemy?

    @AVKor
    Ответ написан
    Комментировать
  • Почему много HTTP запросов - это плохо?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тебе когда надо достать из холодильника 5 бутылок пива, что проще - открыть холодильник, взять 5 бутылок пива и закрыть холодильник, или открыть холодильник, взять бутылку, закрыть холодильник, открыть холодильник, взять бутылку, закрыть холодильник, открыть холодильник, взять бутылку, закрыть холодильник, открыть холодильник, взять бутылку, закрыть холодильник, открыть холодильник, взять бутылку, закрыть холодильник?
    Ответ написан
  • Как сфокусироваться на чтении?

    Надо читать книгу по таймеру а не до конца главы.
    Ответ написан
    Комментировать
  • Можно с помощью arduino обнаружить объекты?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Для начала определитесь какую именно плату вы подразумеваете под arduino, и отталкивайтесь уже от ее технических возможностей работы с видеопотоком.
    Ответ написан
    4 комментария
  • Можно с помощью arduino обнаружить объекты?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Для этих целей Arduino не подойдёт.
    Надо использовать что-то высокопроизводительное типа NVIDIA Jetson
    Ответ написан
    1 комментарий
  • Можно с помощью arduino обнаружить объекты?

    gbg
    @gbg Куратор тега Arduino
    Любые ответы на любые вопросы
    Слишком мало вычислительных ресурсов. Впихнуть невпихуемое конечно можно, но нужно обладать достаточной экспертизой в этом вопросе.
    Ответ написан
    3 комментария
  • Package-lock.json - какие бывают соглашения на проектах, best practice?

    Lynn
    @Lynn
    nginx, js, css
    Устанавливать зависимости нужно командой npm ci, тогда package-lock не будет меняться. А если npm ci выдаёт ошибку значит кто-то закоммитил несовместимые package и package-lock и это стоит поправить отдельным коммитом.

    В нормальной работе package-lock меняется только при изменениях в зависимостях
    Ответ написан
    2 комментария
  • Как добавить gnd и 5v пини для Ардуино?

    @evgeniy_lm
    В принципе беспечная макетка годиться только для поиграться, шильд для уно в таком случае вещь избыточная и не дешёвая. Проще и быстрее сделать банальный разветвитель, разрезать попалам соединители и спаять несколько вместе, естественно не забываем место спайки изолировать термоусадкой. Лично я такую фигню те покупаю, а делаю сам используя такой набор, старые тупые кусачки и провода которые есть в наличии
    Если сильно хочется шилд можно придумать свой собственный на базе такой платы
    Ответ написан
    Комментировать
  • WinRAR - какой официальный сайт и почему различаются хеш-суммы установщиков?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Могу предположить, что rarlab - сайт Рошаля, а win-rar - это сайт конторы. rarlab появился раньше и оснований его девать куда-то видимо нет :)
    Ответ написан
    Комментировать
  • Как правильно хранить секреты C# на линуксе?

    byte916
    @byte916 Автор вопроса
    В общем, оказалось это просто
    В файле сервиса просто прописать
    Environment=KEY=VALUE
    При этом, вложенные поля отделяются двойным подчёркиванием
    К примеру, ConnectionString превращается из
    {
      "ConnectionStrings": {
        "DefaultConnection": "SomeString"
      }
    }

    в
    Environment=ConnectionStrings__DefaultConnection='SomeString'


    Либо, использовать файл с переменными EnvironmentFile
    Ответ написан
    2 комментария
  • Как правильно организовать структуру директорий на macOS для React приложений?

    DevMan
    @DevMan
    где хотите. реально.
    нет единственного правильного места. есть места куда можно писать, и куда - нельзя.
    все остальное - сугубо личные хотелки.
    Ответ написан
    2 комментария
  • Как правильно организовать структуру директорий на macOS для React приложений?

    Grapeoff
    @Grapeoff
    В чём концепция...?
    Так, а чем маковские директории отличаются от виндовых? Ну вы также создаёте папку где хотите и работаете в ней, просто в винде своя структура папок, а на маке вроде как FHS.
    Ответ написан
    4 комментария
  • Как переобразить числа из 1000 в 1к?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    А можно сколхозить в несколько строчек свой
    велосипедик...
    class KiloNum:
        def __init__(self, value, round_val=None):
            if any([isinstance(value, float), isinstance(value, int)]):
                if round_val is None:
                    round_val = 3
                self.round_val = round_val
                self.value = value
                self.kilo = self.make_value(3)
                self.mega = self.make_value(6)
                self.giga = self.make_value(9)
    
        def make_value(self, key):
            numbers = {3: 'K',
                       6: 'M',
                       9: 'G'}
            return ''.join([str(round(self.value / 10 ** key, self.round_val)), numbers[key]])
    
        def __repr__(self):
            return f'{myvalue.kilo},\n{myvalue.mega},\n{myvalue.giga}'
    
    
    myvalue = KiloNum(34500101112)
    print(myvalue)
    print(myvalue.giga)
    Ответ написан
    1 комментарий