Задать вопрос
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Водитель маршрутки и водитель фургончика с мороженым - в первую очередь водитель.
    Поэтому на базовом знакомстве просто учи как раз эти самые операторы - это и есть синтаксис.
    На выбор у тебя:
    С++ с прицелом на крупный геймдев, если сможешь найти позицию в доступной зоне
    С# для десктопных игр
    Java (в основном) для мобильных игр

    Как освоишь азы, учи фреймворки и библиотеки. Инструкций как с нуля написать простенькую игру для Андроида, или простенькую игру в Unity - в инете полно.

    Вот простой пример, как ты пытался найти информацию. Но почему ты не нашел вот это?
    Как попасть в game-dev и с чего начать карьеру в э...
    Куда податься вчерашнему студенту-недопрограммисту...
    Хочу попасть в игровую индустрию. В какую магистр...
    Как попасть в game dev?
    Что нужно, чтобы стать разработчиком игр?
    С чего начать путь в Game Dev?
    С чего начать путь в Game Dev?
    Но то, что ты сам не смог найти в интернете роадмап - показатель, что ты не так уж жаждешь изучать программирование.
    Ответ написан
    8 комментариев
  • Как понять микросервисы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Микросервисы пишут не для того, чтобы просто переделать API.

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

    А уже исходя из этой точки зрения:

    1. Если у каждого сервиса есть свой api, зачем API Gateway (точка входа), можно же на nginx сделать обращение по location на нужный api?

    А если нужно много экземпляров, будете одним nginx-ом раскидывать по 10 локейшенам? Микросервисы в современном мире предполагается запускать в докере на собственном легковесном веб-сервере (типа Jetty), поднимать нужное количество экземпляров и балансировать чем-нибудь на входе, но не по локейшенам.

    2. Стоит ли использовать RabbitMQ для общения между сервисами? Правильно ли понимаю, что точка входа на ноде, посылает запрос в раббит и ждет от него же ответ и отдает клиенту?

    РаббитMQ или kafka позволяют множеству экземпляров вашего сервиса обрабатывать сообщения, с гарантией того, что из очереди ничего не пропадет, и если какой-то экземпляр сдохнет, то этот запрос обработает другой экземпляр. Именно ждать ответ наверное не самое правильное, но это можно смотреть как вам удобнее - периодически опрашивать очередь, или настроить чтобы message service сам пушил по событию.

    3. Например делаем микросервис по авторизации пользователя и регистрации. У него должна быть своя база данных? Как например в админке обращаться к пользователям, чтобы их добавить или заблокировать, я должен запрашивать пользователей с микросервиса? Получается микросервис отвечающий за пользователей CRUD + Регистрация, авторизация, сброс пароля?

    Это как вы хотите. Если у вас очень много пользователей и авторизация тормозит, но можно сделать микросервис с авторизацией, сделать кластер базы данных с репликацией. Дальше можете балансировать пользователей и там уже решать как их раскидывать. Или база мощная и все экземпляры могут работать с кластером. Или делите базу на части, и раскидываете пользователей по алфавиту (база юзеров от A* до H*, база юзеров от I* до M*, по региону или как вам нравится).

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

    Второй немаловажный плюс микросервисов - работать над небольшим микросервисом проще, чем над крупным монолитом. Упрощается его поддержка рефакторинг. То есть в конечном счете упрощается требования к квалификации программиста. Но усложняется общая архитектура проекта, то есть на сеньоров/техлидов нагрузка возрастает.
    Ответ написан
    Комментировать
  • Работа с памятью и гибернация в linux как в windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. Сжатая память? Вы уверены? можно документацию где это работает по дефолту?
    2. гибернация это не своп. Не путайте pagefile.sys и hiberfil.sys - это совершенно разные и независимые штуки.
    Swap на линуксе может быть вообще какой угодно.
    3. Это не совсем так работает. С достаточным объемом памяти Линукс сам со всем разбирается. Просто Линукс не то, чтобы привык что его часто ребутают. А если не ребутать, он в принципе старается кешировать все, что может.
    Ответ написан
  • Как решить проблему с экспортом $PATH?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    посмотри в домашнем каталоге .profile, .bashrc
    там возможно PATH переназначается как-то так PATH=/opt/java/latest/bin
    а должно быть PATH=$PATH:/opt/java/latest/bin - то есть сохраняя предыдущее значение и дописывая в него новое.
    Ответ написан
    3 комментария
  • Как с помощью Notepad ++ преобразовать текст?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Заменить
    ^([^:]*):([^:]*):([^:]*):([^:]*):.*

    на
    $3 $4:$2
    Ответ написан
  • Чем делать резервную копию Windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    юзаю консольный winrar + крон (бесплатный nnCronlite под винду) для создания бэкапов и SyncBackup для синхронизации с внешним диском
    Ответ написан
    Комментировать
  • Как называется человек зарабатывающий на рекламе на своих сайтах?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    человек с пассивным доходом.
    Ответ написан
    Комментировать
  • Как слайсить массив на баше?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    declare -a array=( a b c d e f g h i j k l m n o p q r s t u v w x w z a b c d e f g h i j k )
    declare -i j=1 k=6
    
    for item in ${array[@]}; do
      j+=1
      printf "$item "
      if [ $j -gt $k ]; then
        printf "\n$k"
        k=$k+6
      fi
    done


    >bash.exe a.sh
    a b c d e f
    6
    g h i j k l
    12
    m n o p q r
    18
    s t u v w x
    24
    w z a b c d
    30
    e f g h i j
    36
    k
    Ответ написан
    Комментировать
  • Бэкапирование данных с помощью другого RAID имеет ли место?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В идеале - купить еще один сервер, чтобы не зависеть от рейд контроллера и не загружать основной сервер.
    А что делать если ваш сервер выйдет из строя?
    Ведь бэкапировать можно/нужно не только рабочие файлы, но и функционал сервера.
    Ответ написан
    Комментировать
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Насколько я понимаю раньше шеллы использовались в качестве примитивных высокоуровневых языков. Сейчас у нас есть Perl, Python, nodejs, php...


    Ну давайте вместо рабочего стола пользователю дадим сразу Visual Studio, ведь какая разница как программу запускать - иконкой на рабочем столе, или форкать из высокоуровневого языка?

    shell - это оболочка операционной системы. То, что кроме графической есть еще и command line interface - это совершенно нормально и адекватно. И шелл позволяет пользователю и администратору работать в операционной системе гораздо удобнее, чем через язык программирования.

    То, что sh/bash и другие, настолько развиты что сами по себе являются неплохими языками программирования - это просто следствие того, что командый интерфейс и создавался тогда, когда каждый пользователь был немного программистом, и следствие того, что cmd line удобен для автоматизации просто по своей архитектуре.
    Поэтому Powershell, bash/zsh/ksh будут продолжать развиваться.

    Но ты можешь попробовать писать всю автоматизацию на любом другом языке программирования. И со временем немного столкнуться с тем, что скрипт, написанный на шелл 10 лет назад - просто работает, а скрипт написанный на питон 10 лет назад - несовместим.
    Ответ написан
    42 комментария
  • Как в Win10 разнести звук из разных приложений по разным каналам?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Так никак.
    Лучше выводи в разные устройства, а в этих устройствах настрой на одном все в левый канал, на втором все в правый.
    Ответ написан
  • Как мобильный оператор понимает, в каком качестве я смотрю видео?

    saboteur_kiev
    @saboteur_kiev Куратор тега Компьютерные сети
    software engineer
    Провайдер может вообще не париться и просто резать скорость доступа к ютубу.
    Ответ написан
    Комментировать
  • В airmon-ng нет Wlan0. Как исправить?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Вопрос о том, что следует изучить базовые навыки работы с линукс, а именно - что такое интерфейс и как посмотреть список интерфейсом в текущей системе.
    Ответ написан
  • Возможно ли стать middle/senior без работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Интересно, без опыта работы но с большими знаниями и проектами можно стать мидлом/сениором


    А откуда взялись большие знания и проекты без работы?
    Ответ написан
  • Как публиковать коммерческие проекты в GitHub?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Так и сказать, что у вас личных проектов нет, а рабочие на гитхаб публиковать вы не имеете права.
    Пусть задают вопросы, тестовое задание. Гитхаб это вообще не панацея.
    Ответ написан
    Комментировать
  • Есть ли программа мониторинга обращений к жесткому диску?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Комментировать
  • Что означает Поддержка кода?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Предположим есть идеально написанная программа. Все в ней есть что хотел пользователь. Написана и оптимизирована так, что переписывать не нужно.
    Но вот незадача, windows XP вышла из моды, а под Windows 7 программа не запускается. Вот надо дописать совместимость с более новой версией.
    Ну или надо дописать функционал, исправить ошибку, обновить еще что-нибудь под работу с новым оборудованием или новой версией библиотек.
    Ответ написан
    Комментировать
  • Как лучше организовать хранилище семейных фото?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В компе на диске должно быть достаточно места для такого. Если нет, купи нормальный внутренний жесткий диск, небыстрый, но с гарантией от 3, желательно от 5 лет.
    Отдельно купи внешний жесткий диск.
    Периодически (раз в месяц), синхронизируй свой диск в компе с внешним. Можно просто взять какой-нить синхронизатор папок, типа syncbackup, настроить в нем нужные папки или написать скрипт для rsync, и просто подключаешь внешний диск, запускаешь скрипт, через какое-то время все посинкано и у тебя есть рабочая версия на компе и бэкап в "сухом темном шкафу".
    Это если подешевле.

    Если подороже, то какое-нибудь NAS решение с зеркалом.
    Ответ написан
    Комментировать
  • Один или несколько серверов для бэкенда, фронтенда и базы данных?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    Ну хотя бы примерные нагрузочные тесты есть?
    Заценить сколько вы ожидаете пользователей, какая будет нагрузка, запустить на минимальном оборудовании, посмотреть на сколько процентов оно занято. От этого и смотреть что лучше - на одном, или уже не вытягивает и надо разносить.

    При запуске сайта, в среднем достаточно очень небольших ресурсов, и даже в пределах одного провайдера можно просто менять тариф, добавляя CPU и RAM до определенного предела.

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