• Какие материалы считаются лучшими для глубоко изучения JS?

    @dmitry-toster
    Для глубоко изучения JS

    Вряд ли есть что-то лучше серии книг Kyle Simpson - You don't know JS, где одной только теме про thisили замыканию уделена целая книга

    Интересен супер подробный разбор event loop

    Помимо книг выше, есть также отличное видео на YouTube после которого отпадут все вопросы как оно работает

    Что можно считать лучшим источником

    Собственно Standard ECMA-262
    Ответ написан
    1 комментарий
  • Какие распределенные реляционные базы данных бывают?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    PostgreSQL + частичная репликация
    Ответ написан
    Комментировать
  • Sudo apt update: Err:5 http://security.ubuntu.com/ubuntu disco-security Release 404 Not Found [IP: 91.189.91.38 80]?

    Игорь Махов прав, нужно обновить систему, т.к. у нее закончился срок поддержки и она более не получает обновлений безопасности.
    sudo mv /etc/apt/sources.list /etc/apt/sources.list-bak

    Сгенерировать новый список отсюда: https://repogen.simplylinux.ch/ или взять
    этот
    deb http://archive.ubuntu.com/ubuntu/ disco main restricted
    # deb-src http://archive.ubuntu.com/ubuntu/ disco main restricted
    
    deb http://archive.ubuntu.com/ubuntu/ disco-updates main restricted
    # deb-src http://archive.ubuntu.com/ubuntu/ disco-updates main restricted
    
    deb http://archive.ubuntu.com/ubuntu/ disco-backports main restricted
    # deb-src http://archive.ubuntu.com/ubuntu/ disco-backports main restricted
    
    deb http://security.ubuntu.com/ubuntu disco-security main restricted
    # deb-src http://security.ubuntu.com/ubuntu disco-security main restricted
    
    # deb http://archive.canonical.com/ubuntu disco partner
    # deb-src http://archive.canonical.com/ubuntu disco partner


    sudo nano /etc/apt/sources.list
    Shift-Ins, Ctrl-W
    sudo apt update
    Но это помогло бы, если бы обновления все еще существовали.
    Ответ написан
    1 комментарий
  • Как написать асинхронный конвеер на c#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ну так IEnumerable<> и yield вам в помощь. само собой и async/await
    как раз эти четыре понятия и придназначены, для упрощения написания кода, над массивами даннх, растянутыми во времени, и не известной длинны. с их помощью, большая часть кода, выглядит так, будто все входные данные предоставлены сразу, и результат вы выдаете как будто тоже сразу

    ps для практики полезны примеры из MSDN (где они есть) либо на https://metanit.com/sharp/tutorial/ придется поискать. в любом случае, однозначно придется понять обсласти применения и возможности этих понятий. а тогда уже точно сложится картина, как они лягут на ваш конкретный случай

    pps
    Ссылки от того куда положили возвращаем в виде коллекции тому кто нас вызвал.
    вот это место не очень вписывается в концепцию конвеера на IEnumerable/yield/async/await
    дело в том что результирующие ссылки, вы получаете "изредка", и явно в отрыве от момента получения исходного изображения
    тут несколько путей:
    - именно коллекцию ссылок (json?) формировать по окончанию обработоки
    - возвращать в первоисточник ссылки по одной, и формировать коллекцию там, а привязку можно делать по имени/тегу/коду/номеру изображения.. (кадра?)
    - можно и асинхронно, растянуто во времени досылать json, или любую выбранную коллекцию дотнета, если на приемнике дотнет, и вы так же правите исходниками
    - как вариант, если известно количество кадров изначально, можно уведомлять первоисточнк о начале пересылки хоть массива заданной размерности, в любом понятном ему формате, если конечно он так же способенн к асинхронной обработке

    ppps
    Пробовал с BlockingCollection
    повторюсь, на сколько я уловил вашу задачу, кроме IEnumerable<>, в подобном конвеере в принципе ни че больше не нужно. ну или разве что как вы там результат решите формировать. но и для результата, даже для накопителя, из дотнетовских конструкций, того же IEnumerable<> за уши, а из него, если кончно это требуется, можно и json формировать
    Ответ написан
    6 комментариев
  • Какое приложений для ведения рабочих заметок использовать?

    @McBernar
    Evernote в топку. Долго юзал, но быстродействие ужасное.

    Bear можно, но возможностей маловато.

    Сейчас Notion. Не самый отзывчивый, но в целом норм. Плюс куча фишек для систематизации информации. Пока менять не собираюсь.

    Были еще apple notes, но там совсем примитив.
    Ответ написан
    Комментировать
  • Как научиться писать парсеры?

    tsarevfs
    @tsarevfs
    C++ developer
    XML парсим любой библиотекой. Получаем дерево разбора.
    https://pep8.ru/doc/dive-into-python-3/14.html
    Дальше начинаете обходить дерево и для каждога узла(node) проверять подходит ли он вам.
    https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%85%D...
    В функции проверки и должна быть вся магия. Возможно вы сможете придумать эвристическое правило от разных параметров. Например:
    *путь от корня (root/part/segment/item)
    *имя тега
    *значения параметров тега
    *имена тегов-детей
    *...
    При необходимости можно пытаться ускорить процесс, если о данных что-то известно. Так можно не обходить все дерево, а отбрасывать его части если мы поняли что это не то что нам нужно.

    Если данных очень много и вариативность очень большая (например ищем рекламу на веб страницах) можно заняться машинным обучением. Это отдельная сложная тема выходящая за рамки вопроса.
    Ответ написан
    Комментировать
  • Есть ли резон переучиться на программиста?

    php666
    @php666
    PHP-макака
    В IT, если говорить о простых исполнителях, мало кому нужны люди за 40 - они в силу возраста работают медленнее, чем программисты 25+ лет. Кто бы что не говорил и не писал на профильных сайтах о 90-летних программистах.

    40-летний юнга - это из разряда фантастики. Вы будете себе чувствовать, мягко сказать, плохо, работая в коллективе профессионалов кому нет и 30, со временем это выльется в комплекс неудачника. В 41 вряд ли освоите все быстро, пройдет 3-5 лет и вам уже 46.

    Легче в такси устроиться.

    Основой посыл - более высокая зарплата
    Высокая зарплата - это миф. Она не дается просто так. Это результат многих лет изучения и практики, это путь длинной во многие годы.
    Ответ написан
    1 комментарий
  • Как реализовать асинхронный сервер TCP C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    dotnet core rsignal смотрели? если нет, рекомендую
    Ответ написан
    1 комментарий
  • Как реализовать асинхронный сервер TCP C#?

    @Kosyachoka
    Новое поколение создателей "своих 10к ммо серверов" подросло? :) ну ок

    Тср или удп выбирается в основном по критерию насколько динамичная будет эта "новая эпичная сага". Если стрелялка, то удп скорость компенсирует качество. Если это "убийца вов, л2" то тср, там важно чтобы действия клиента были доставлены от и к серверу. А затем конечно самое сложное - не бросить это дело через месяц оставаясь без прогресса и наблюдая лаги и глюки. Чтобы сделать игру плавной придется делать адаптивную логику которая будет учитывать задержки сети как на клиенте так и на сервере. Легче всего сделать сначала клиент который будет бегать независимо от сервера, а затем постепенно добавлять туда шаг за шагом контроль со стороны сервера, отточить движение, затем взаимоотношение с миром (удачи с синхронизациец физики), бой итд.
    Вобшем не ты первый, не ты последний. Ждем шедевр. Я если че буду десять тысяч первый игрок ;)

    P.S. по теме :) . смотри в сторону архитектуры на основе пакетов и очередей. Только так ты выстроишь масштабируемое взаимоотношение клиент-сервера которое не будет загинаться от 20 одновременных подключений
    Ответ написан
    Комментировать
  • Может ли быть API не как API?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Нет, не "должен", но может. Лично я пришел к такой схеме:
    - 200-ые статус коды отправляются ТОЛЬКО тогда, когда все прошло успешно. В таком случае не будет никаких success: true или response: {} - а нужные данные, прямо на первом уровне нестинга. Собственно если взять за правило, что 200-ые коды возвращаются когда все ок, то можно полностью избавлятся от этих плохих проверок на наличие ключа в респонсе.
    - 400-ые и 500-ые будут попадать в отдельный колбек/реджектить промис, опять же избавляя от нужды проверять какие-то ключи. Для всех кодов ответов, кроме 400 и 422 - в ответе нету нихрена. Ни code, ни message, ни response. Вообще ничего. Вся инфа находится в самом http status коде. Для 400 и 422 прибавляется параметр code, который является номером ВНУТРЕННЕЙ ошибки (ну, например, есть какие-то предусловия для выполнения запроса - уникальность эмейл адреса при регистрации как пример) - по ней фронт может показывать отдельные ошибки либо выполнять какую-то логику.

    Плюс ко всему этому у себя локально и на сервере для фронта включен дебаг, добавляющий некий параметр _debug к каждому ответу. В нем может хранится любая инфа - сообщение с ошибкой (даже если ее можно понять по http коду или внутреннему), стак трэйс 500-ой ошибки и тд.
    Ответ написан
    Комментировать
  • Уехал в Москву, но не тяну по сложности, стоит ли возвращаться домой?

    @itsjustmypage
    Если взяли, значит устраиваешь. Продолжай штудировать и спрашивать. Английский технический довольно простой и переводчики такое нормально переводят.

    KEEP-CALM-POSTER-LOW_large__78588.129146
    Ответ написан
    Комментировать
  • Многопоточная обработка текстового файла?

    mshak
    @mshak
    Например так:
    один поток читает построчно и полученные сырые значения строк закидывает в очередь на обработку (например BlockingCollection)

    до чтения было должно быть создано требуемое множество потоков, которые с помощью метода GetConsumingEnumerable читают из данной blockingCollection и обрабатывают полученные строки
    Ответ написан
    Комментировать
  • Использование утилиты GNU awk?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Моя первая цель взять IP и порты ...

    в каком виде вы хотите их получить ?
    по отдельности, вместе, через двоеточие, через пробел или еще как либо ?
    моя телепатия подсказывает что через пробел, если это действительно так то код будет выглядеть примерно так:
    ... | awk -F'[ ,:]' '{print $2,$3}'
    192.168.101.79 7001
    192.168.101.79 7000
    192.168.101.79 7000
    Ответ написан
    4 комментария
  • Использование утилиты GNU awk?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Ну дык у вас строка и делится на две
    $ echo "08a7ff2732079bc7b113726352101e5302a1f5d8 192.168.101.79:7001 master - 0 1553254293379 2 connected 10923-16383" | awk -F: '{print $1 $2}'
    08a7ff2732079bc7b113726352101e5302a1f5d8 192.168.101.797001 master - 0 1553254293379 2 connected 10923-16383
    $ echo "08a7ff2732079bc7b113726352101e5302a1f5d8 192.168.101.79:7001 master - 0 1553254293379 2 connected 10923-16383" | awk -F: '{print $1}'
    08a7ff2732079bc7b113726352101e5302a1f5d8 192.168.101.79
    $ echo "08a7ff2732079bc7b113726352101e5302a1f5d8 192.168.101.79:7001 master - 0 1553254293379 2 connected 10923-16383" | awk -F: '{print $2}'
    7001 master - 0 1553254293379 2 connected 10923-16383

    Только вы опять делаете конкатенацию на выходе

    может быть так вы имели в виду?:
    $ echo "08a7ff2732079bc7b113726352101e5302a1f5d8 192.168.101.79:7001 master - 0 1553254293379 2 connected 10923-16383" | awk '{ print $2 }' 
    192.168.101.79:7001


    Отдельно хост
    $ echo "08a7ff2732079bc7b113726352101e5302a1f5d8 192.168.101.79:7001 master - 0 1553254293379 2 connected 10923-16383" | awk '{ print $2 }' | awk -F: '{print $1}'
    192.168.101.79


    Отдельно порт
    $ echo "08a7ff2732079bc7b113726352101e5302a1f5d8 192.168.101.79:7001 master - 0 1553254293379 2 connected 10923-16383" | awk '{ print $2 }' | awk -F: '{print $2}'
    7001
    Ответ написан
    1 комментарий