• Как скомпилировать в один большой запускной файл?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Да. Читайте про статическую линковку.
    Помимо этого, можно просто все нужные зависимости поставлять с исполняемым файлом.
    Ответ написан
    2 комментария
  • Есть ли С++ IDE с готовыми библиотеками?

    mmmaaak
    @mmmaaak
    Qt Framework, есть своя IDE, а в фреймворке куча готовых библиотек с кроссплатформенными реализациями много чего, включая работу с сетью
    Ответ написан
    Комментировать
  • Как научиться писать грамотный код JS?

    @Strannyk
    Поможет работа в команде с код ревью.
    Все разработчики проходят 3 стадии развития:
    1. копипастинг - когда, как собака, все понимаешь, но сам написать не можешь;
    2. стадия быдлокода - когда код задачу решает, но без слез на него не взглянешь - не застрять на этой стадии помогут опытные коллеги, которые популярно объяснят, что так писать не надо;
    3. стадия просветления - когда появляется понимание, что код должен не только работать, но и быть поддерживаемым.

    Если нет возможности работать в команде, неплохо бы найти ментора, которому будет не влом периодически давать разгромную критику вашей работы. Только подходить к выбору надо на основании объективной информации о квалификации будущего наставника. "тэг ООП не уместен в вопросе про JS, так как в этом языке нет ооп, а есть только накладки, которые бабелем потом транспилируются в ванилу" (с) - в этом предложении ужасно все.
    Ответ написан
    Комментировать
  • Есть ли сайт идей, где можно приложить свои умения в области web программирования?

    Идея - ничто. Вопрощение - всё. Открываете hh смотрите какие компании нанимают людей и чем они занимаются - делаете лучше. Готово.
    К тому же мы не знаем будущего, не знаем какая идея на миллион, а какая на ноль )
    Ответ написан
    5 комментариев
  • Как открыть больше 65600 портов?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Дополнительный физический интерфейс не нужен, а вот дополнительный IP - в самый раз. На одном интерфейсе может находится несколько IP.
    Ответ написан
    Комментировать
  • Как тестировать методы работающие с приватными или защищенными полями?

    Да в любом тесте мне понадобится поле _workers. Как его получать?

    Никак. Если говорить по хорошему, этот код невозможно протестировать. Поэтому, например, при TDD не используются статичные классы. Разработка через тестирование заставляет в первую очередь думать что пишешь. Зачем нужна обертка вокруг в виде класса Office вокруг класса List? Какие задачи она решает? Почему в том месте, где будет использоваться интерфейс IOffice не использовать просто класс List? Когда начинаешь задумываться над такими вещами, тогда отпадает надобность получать доступ к приватным полям.
    Ответ написан
    Комментировать
  • Где почитать про "боевое" использование сокетов?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Еще в 2012 году парни выжимали 1 млн соединений с 1 физического сервера: https://habrahabr.ru/post/123154/
    Даже если снизить накал на порядок и предположить что у них и нагрузка была в плане количества сообщений ничтожной - все равно получается 100 000 соединений с сервера, а это больше чем средний онлайн ААА игры.

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

    "Pubg держит 3 млн игроков" - забавно). Pubg держит 100 игроков в одной сессии и это хороший результат.
    WoT держит 20 игроков в одной сессии.
    EVE в самой большой битве было ~7500 человек, и они вводили своё фирменное замедление времени - сервер обслуживающий локацию не успевал обсчитывать математику.

    А вообще, все проекты обслуживающие большое количество людей строятся изначально исходя из возможности горизонтального масштабирования. В этом смысле сессионки вообще шикарны, изолированная на долгое время группа людей, какие-то связи за пределы группы отсутствуют, никакие серьезные потоки данных из сессии перебрасывать не нужно, целостность данных тоже пофиг по большому счету - идеальная история.
    Ответ написан
    2 комментария
  • Что выбрать Windows Forms или WPF?

    twobomb
    @twobomb
    Хочешь красиво, резиново и современно то конечно wpf. Если нужно быстро, просто и в стиле windows xp то windows form. Но лучше wpf там больше разных элементов, более гибкая настройка..
    Ответ написан
    3 комментария
  • Как генерируется интернет-трафик?

    saboteur_kiev
    @saboteur_kiev Куратор тега Компьютерные сети
    software engineer
    Когда ты как пользователь заходишь на тостер, ты скачаешь страничку на которой видишь вопросы. Вот этот траффик сгенерировал тостер.
    Когда ты заходишь на ютуб - тебе ютуб передает видео, следовательно ютуб сгенерировал видео траффик.

    Многие пользователи заходят на гугл, чтобы что-то найти, а потом перейти по ссылке. Но зайти на гугл, получить ссылки - это скачать траффик, сгенерированный гуглом.

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

    Сидя на фейсбуке - ты весь трафик качаешь с него. Да конечно часть трафика генеришь ты, когда заливаешь новую фотку на фейсбук. Но фейсбук сгенерит гораздо больше трафика, когда эту фотку с него скачает 100 твоих друзей (или друзей их друзей).

    p.s. скорость передачи данных связана с частотой сигнала.
    Ответ написан
    Комментировать
  • MySQL или PostgreSQL при геозапросах?

    @Fixid
    PostgreSQL + PostGis (на этой связке работает OSM, очень быстрая и надежная система)
    С MySQL всегда можно перейти на PostgreSQL, но обратно уже сложнее. Особенно если используются фичи PostgreSQL.
    Лучше начинать сразу с PostgreSQL
    Ответ написан
    1 комментарий
  • Каким образом лучше реализовать эффект падающей монеты в банку с другими монетами?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Я бы всё переусложнил.
    1. от дизайнера потребовалось бы в 3D нарендерить для разных степеней заполненности банки кучи монет в ней. Может, большими шагами, но для каждого шага - состояние «до» и «плюс 1-2 монеты». Для перфекционистов ещё пара кадров встряски/подпрыгивания монет в этом состоянии от падения на них новых.
    2. рендеры монет в полёте, непременно с ускорением, вращением и motion blur (размытием от движения) – это размытие сложно реализовать средствами js/css, поэтому именно рендер.
    3. озвучка падения монет на монеты.
    4. монеты падают, анимация обрывается в нужный момент, куча меняется с «до» на «плюс 1-2 монеты» (возможно, с анимацией подскока).
    Ответ написан
    6 комментариев
  • Можно ли установить одновременно Visual Studio 2017 и Visual Studio 2015?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Да запросто, плагины нужно будет переустановить, а в остальном переезд безболезненный
    Ответ написан
    1 комментарий
  • Кто может объяснить что такое сайты с кейсами cs go?

    Как игрок в CS:GO надеюсь выдам вам исчерпывающую информацию

    1. Первыми рассмотрим кейсы в самой игре. Они рандомно падают игрокам в конце игры. Чтобы открыть кейсы нужно у самой же компании купить ключ. Бесконечный профит. Генеришь кейсы, раздаешь игрокам, больше кейсов, больше ключей покупают. Есть очень редкие кейсы (по 300-400 руб), остальные стоят порядка 20-30 коп.

    При открывании такого кейса, вероятность получить какую-то серьезную вещь ну очень низка. Нож и подавно, есть конечно такое понятие как везение, но посмотрите любые опенкейсы в самой игре (не на каких-то сайтах) и поймете что за 300-500 открытий может не выпасть ничего, в то время как другому за два открытия подряд падает два ножа по $300. Но чаще конечно 300-500 кейсов с мусором. Профита открывать такие кейсы нет.

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

    То есть в случае с игрой вам нужно достать сам кейс, купить к нему ключ, на сайте же вы просто платите деньги за какую-то рандомную вещь из списка вещей этого кейса. Грубо говоря сайт просто выдает вам какую-то вещь за оплату. Ничего сложного в реализации, все просто убрано под макет кейса.

    В чем суть этого бизнеса? Суть этого бизнеса в огромном количестве школьников и огромном количестве продающихся ютуберов. Как это работает: дается реклама ютуберу (человек заходит и крутит кейсы), так как само понятие рандома там немного другое, с помощью пары коэффициентов можно "подкрутить" конкретному человеку (в нашем случае ютуберу), чтобы ему выпадали очень дорогие вещи, записывая видео о перевоплащается в актера и всячески удивляется, рассказывая какой это крутой сайт, что он закинул 1к рублей и выбил вещей на 5к рублей. Школьники, в силу своей наивности, тащат мамкины деньги, кладут на сайт и ничего не получают (ибо сайт не будет работать в убыток), после чего уже просто запускается азарт и человек думает: ну вот же, я же видел как ему падало, мне вот тоже упадет, надо только еще пару разков, после 30 разков человек видит что оставил на сайте 5к рублей, при этом получив вещи на 1-2к рублей максимум.

    Это актуально для русскоязычных сайтов, на англоязычных (проверенных) такого, как правило, нет, сам проверял.

    P.S Для справки: сам открывал эти кейсы, сам анализировал, смотрел как это работает, впоследствии посмотрел что предоставляют плагины, которые реализуют функционал сайта с подкруткой, все это дело легко запускается админом и отслеживается.

    Самый безопасный вариант: у сайта есть понятие убытка и прибыли. Админ ставит какое-то значение прибыли на сегодня. Скажем 50к рублей: и сайт будет выдавать откровенное дерьмо пользователям, пока прибыль за сутки не перейдет это значение. Если у сайта в 6 вечера, скажем, 55к прибыли, он нескольким пользователям выдаст дорогие вещи, схема довольно простая.
    Ответ написан
    3 комментария
  • Как выглядит "прокачанный" аккаунт ГитХаб?

    @InoMono
    Сильно прокаченный аккаунт работодателю не нужен.
    Ну разве что если это Google.

    Достаточно очень небольшого количества проектов на технологиях близким к тем, что интересуют работодателя.
    Смотреть он это будет бегло.

    Дело в том, что сейчас в связи с массовой истерией "войти-в-айти" развелось много народу, которые здорово льют в уши умными словами и ничего не умеют.

    Аккаунт всего лишь удобный показатель того, что вы хоть что то умеете.
    Причем, если работодатель уже вышел с вами на контакт, не зная об вашем аккаунте - тут даже и аккаунт не нужен. Вполне достаточно примеры своего когда показать ему любым способом, хоть по почте выслать.
    Ответ написан
    Комментировать
  • Ресурсы по современному C++?

    Самое очевидное — en.cppreference.com/w
    Ответ написан
    Комментировать
  • Что говорить валютному контролю в банке насчет выполненных работ?

    vicodin
    @vicodin
    Имею некоторый опыт
    выведите эти 14 баксов на пейпал, купите две бутылки пива и выпейте одну за здравие Валютного Контроля, а вторую за Апворк
    Ответ написан
    10 комментариев
  • На какие слои должен (может) разделяться ЯП и его компилятор?

    SerafimArts
    @SerafimArts Автор вопроса
    Senior Notepad Reader
    Итак, корректный ответ на поставленный вопрос:

    Для начала, стоит понимать, что задача компилятора - взять сырец на X языке и перегнать его на Y язык. В современной жизни устоялась терминология "транслятора" и процесс "транслитерации", дабы не путать перегон в машинный код и на другой язык.

    В классическом варианте этапы следующие:
    1) Лексический анализ: Используя правила разбивает сырец на набор токенов (терминалов)
    2) Синтаксический анализ: Используя правила и набор токенов структурирует их в AST
    3) Семантический анализ: Проверяет корректность данных внутри AST (какого фига семантический анализ на этом этапе, а не позже, я, признаться хз).
    4) Генерация промежуточного кода: В частности, трёхадресного и этот этап имеет смысл при реализации императивных языков. Трёхадресный код так же можно заменить на опкод, байткод или прочие "заменители" промежуточного кода.
    5) Оптимизатор кода.
    6) Результат (генерация в конечный код)
    Во время всех процессов активно используется "таблица символов", грубо говоря "словарь".

    Ориентируясь на эти данные я сделал несколько выводов и перестроил архитектуру следующим образом:
    1) Парсинг (лексер + синтаксис)
    2) Построение таблицы символов в немного фривольном формате: Имя + Тип + Адрес/Позиция в исходном документе + Метаданные (AST и проч.)
    3) Билдер промежуточного кода (Reflection API)
    4) Приведение типов
    5) Валидация (вместо проверки корректности семантики из AST мне показалось удобнее оперировать высокоуровневым API, применяя некий паттерн матчинг, т.к. каждый тип проходит эту стадию сборки от 1 до 8).
    6) Экстенды (есть спец.тип в GralphQL, который занимается манкипатчингом) -> после него переход к п.3
    7) Рантайм (вызовы функций и проч) -> после него переход к п.3
    8) Выходной результат (Reflection API)

    Ключевым моментом становится метод а-ля рекурсивного спуска по этапам сборки от 1 до 8. Таким образом в самом рантайме (т.е. во время прохода по фазам их выполнению) можно дополнять данные в любую другую фазу. Пока хз как будет выглядеть на практике, но идея мне нравится.

    Крайне рекомендую к прочтению:
    1) Тут много инфы человеческим языком https://ps-group.github.io/compilers/ особенно вот эта статья понравилась: https://ps-group.github.io/compilers/fsm которая рассказывает о построении таблицы переходов в синтаксическом анализаторе.
    2) И вот эта книжеца: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D... Довольно сложная для понимания для неподготовленного читателя, но позволяет уточнить некоторые нюансы и ответить на вопросы.
    Ответ написан
    2 комментария