Задать вопрос
  • Как в Node.js убрать express?

    lssssssssssl
    @lssssssssssl
    const express = require("express");
    Удалите эту строку, а потом все строки, которые подсветит красным ваш ide.

    И не будет в нем никакого express
    Ответ написан
    1 комментарий
  • Как правильно парсить текс в таких условиях?

    @oleg_ods
    Строка это массив символов.

    1. С помощью метода IndexOf() ищем первое вхождение символов ‘{‘ и ‘}’
    2. С помощью метода SubString() сохраняем текст между найденными индексами.
    3. Возвращаемся к пункту 1, но поиск начинаем с символа идущего после ‘}’.
    4. Повторяем пока один из методов IndexOf() не вернет -1.

    А вообще для решения данной задачи лучше покурить регулярки.

    Если лень

    Рефакторить и рефакторить, но работает =)

    private static List<string> ParseString(string input)
            {
                List<string> result = new List<string>();
    
                int openIndex = input.IndexOf('{');
                int closeIndex = input.IndexOf('}');
    
                while (openIndex != -1 && closeIndex != -1)
                {
                    result.Add(input.Substring(openIndex, closeIndex - openIndex + 1));
                    
                    input = input.Substring(closeIndex + 1);
    
                    openIndex = input.IndexOf('{');
                    closeIndex = input.IndexOf('}');
                }
    
                return result;
            }


    + вариант через регулярку Взято отсюда

    private static List<string> ParseStringRegex(string input)
            {
                Regex regex = new Regex(@"{([\s\S]+?)}", RegexOptions.Compiled | RegexOptions.IgnoreCase);
    
                var matches = regex.Matches(input);
    
                return matches.Select(m => m.Value).ToList();
            }

    Ответ написан
    3 комментария
  • Как правильно парсить текс в таких условиях?

    freeExec
    @freeExec
    Участник OpenStreetMap
    1. найти слово
    2. найти скобку перед ним
    3. найти скобку после
    4. вырезать текст между ними.
    Ответ написан
    2 комментария
  • Насколько реально нужен консул девопсу?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Никто не заставляет использовать docker, systemd, ansible и вообще какие угодно системы оркестрации и оптимизации. Необязательно делать шаблоны конфигов или кластерные конфигурации сервисов, необязательно использовать библиотеки настраиваемого логгирования, возиться с балансерами и реприцируемыми базами. Но люди это делают, значит, смысл всё-таки есть?

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

    Консул - это тоже инструмент. Вряд ли хоть кто-то использует его возможности целиком и полностью, тем более что никто не заставляет. Кому-то достаточно того, что у него все сервисы зарегистрированы в одном месте и из коробки имеют автоматическое DNS-имя вида NAME.service.consul. Кто-то использует kv-хранилище для хранения параметров, а кто-то хранит в нём секреты и целые конфиги, настраивает токены с различными acl и скрещивает всё это с consul-template. Вообще, необязательно использовать именно консул, есть и другие инструменты для подобных задач. Например, zk/etcd.

    Консул чаще используют совсем не с ансиблом, а с инструментами оркестрации, в которых сервисы могут расширяться и сворачиваться, перезагружаться и мигрировать. Скажем, пусть у нас есть условный сервис rabbitmq на три ноды. Тогда у нас может быть три контейнера rabbitm{1..3}, при запуске они регистрируются в консуле скриптом запуска вместе с проверками, а далее consul отдаёт их все три в виде имени rabbitmq.service.consul. Если какой-то из них вдруг упадёт, consul оперативно это обнаружит и исключит из DNS проблемный узел. Если вдруг управляющий всем этим администратор или автоматическая система оркестрации посчитает нужным добавить новые узлы или перенести их куда-то ещё в кластере, то consul также отразит все нужные изменения. При этом использующее rabbitmq приложение должно будет знать только адрес rabbitmq.

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

    @qwazimord
    Интроверт
    нет
    Ответ написан
    Комментировать
  • Что почитать по 16 битному ассемблеру?

    @kalapanga
    Хотел Абеля порекомендовать, но случайно наткнулся - кто-то для Вас уже целую подборку приготовил https://vk.com/devmath/assembler
    Ответ написан
    2 комментария
  • Существует ли большой, тонкий(как лист) экран для отображения на нем информации?

    sswwssww
    @sswwssww Автор вопроса
    В общем, нашёл в какую сторону копать(aliexpress), буду искать нужный размер или соберу большой экран по кускам сам:
    622d29432d856165970960.png
    622d2afc4832a541206094.png

    Спасибо Александр за наводку
    Ответ написан
    5 комментариев
  • С чего начать построение образовательной платформы?

    Sanes
    @Sanes
    С концепции и технического задания.
    Ответ написан
    Комментировать
  • Стоит ли писать игровой движок, чтобы быть "большим и умным" перед работадателем?

    @Neonoviiwolf
    Flutter developer
    от джуна хорошо ожидать каких-то пет-проектов, где можно посмотреть не что он сделал, а как. Если интересует максимально быстрое трудоустройство, то начать делать проекты, а не велосипеды. Стоит очень много уделить внимание структуре проекта
    Ответ написан
    Комментировать
  • Правда ли что SSR постоянно отваливается?

    SeaInside
    @SeaInside
    16 лет пилю все эти штуки
    Нет, неправда.

    Не бывает так, что один и тот же код в одинаковом окружении иногда "отваливается", а иногда "не отваливается".
    Я вот за что очень люблю программирование - у всего всегда есть причина.
    Чаще всего причиной являются кривые руки. :)
    Ответ написан
    Комментировать
  • Какие подводные в переходе с C# на Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Стоит ли учить и джаву и шарп?

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

    Что насчет вакансий?

    Это вы и сами можете посмотреть на любом работном сайте.

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

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

    Так что на базовом уровне стоит изучить и то, и другое, но для оттачивания мастерства придётся выбрать что-то одно.
    Ответ написан
    Комментировать
  • Как конвертировать очень большой json в Java объект?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    У Gson, как и у Jackson, есть Streaming API специально для таких случаев. Правда, придётся забыть про преобразование JSON в объект и работать с отдельными полями.
    Ответ написан
    Комментировать
  • Ребят, вопрос по поводу становления программистом?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Больше 20 лет в IT. Постоянно копаю новые технологии, библиотеки, фреймворки, ОС, базы данных и прочее.
    Пишу проекты с нуля и участвую в разработке других проектов разного рода (уже около 130+ наберется), проектирую архитектуры и программно-аппаратные комплексы.
    Изучаю разные языки программирования и разные подходы.
    И до сих пор синдром самозванца не отпускает)))
    А вам сразу подай готовый план как стать программистом)
    Ответ написан
    Комментировать
  • Почему в unity c# отличается?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Потому что нет ни какой консоли в Unity (в том виде, в котором ты пытаешься это сделать). Твои скрипты C# в Unity становятся частью программы шаблона, в которой нет консоли.
    Ответ написан
    5 комментариев
  • Насколько реально иммигрировать в США, не имея профильного образования?

    @whoareyoutofuckinglecture
    Python developer
    Не наличие\отсутствие вышки главное препятствие на пути к H1B (в конце концов, если бы у вас было 10 лет профильного подтверждённого опыта, вышка была бы не нужна). Главная проблема - лотерея для желающих получить H1B.

    Да-да. Вот нашли вы работодателя, готового вас перевезти, а виз H1B всего 55000 на весь мир, и ещё 20000 для магистров и докторов по отдельной квоте. А желающих получить рабочую визу почти 300.000 человек, поэтому американское правительство проводит лотерею, на которую податься можно только 1-2 дня в году (в начале апреля каждого года, ЕМНИП).

    В общем, долго это, муторно и никакого прямого пути к этой визе нет: повезёт-не повезёт.

    L1-B может быть лучшим вариантом. Ради неё многие в Европу переезжают, куда-нибудь в Ирландский офис Google (как сделало несколько моих бывших коллег из Яндекса).
    L1B позволяет через год работы в филиале американской компании релокейтнуться в США. Квот нет :) Это самый нормальный путь, единственный минус - если вам не сделают гринку, то работодателя вы поменять не сможете, как на H1B. Поэтому для L1B во-первых, заранее оговаривайте с работодателем то, что он обязуется сделать вам гринкарту, во-вторых, остерегайтесь бадишопов, лучше ломиться в Google, Amazon, etc.

    Читайте форумы, например govorimpro.us
    Ответ написан
    5 комментариев
  • Запуск программы во время сборки проекта VS?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Именно так, кроме того можно добавить в сам проект ноду сборки по условиям и нет.
    Вот например
    StsServerIdentity.csproj
    <Project Sdk="Microsoft.NET.Sdk.Web">
      <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <Version>5.1.2</Version>
        <Description>IdentityServer4 template with ASP.NET Core 3.1 and ASP.NET Core Identity</Description>
        <PackageProjectUrl>https://github.com/damienbod/IdentityServer4AspNetCoreIdentityTemplate</PackageProjectUrl>
        <PackageIconUrl>http://www.gravatar.com/avatar/61d005637f57b5c3da8ba662cf04a9d6.png</PackageIconUrl>
        <RepositoryUrl>https://github.com/damienbod/IdentityServer4AspNetCoreIdentityTemplate</RepositoryUrl>
        <PackageLicenseFile>LICENSE</PackageLicenseFile>
        <PackageTags>oidc identityserver4 identity aspnetcore</PackageTags>
        <PackageReleaseNotes>Updated security headers, updated packages</PackageReleaseNotes>
      </PropertyGroup>
      <ItemGroup>
        <PackageReference Include="Azure.Extensions.AspNetCore.Configuration.Secrets" Version="1.2.1" />
        <PackageReference Include="Azure.Identity" Version="1.5.0" />
        <PackageReference Include="Azure.Security.KeyVault.Certificates" Version="4.2.0" />
        <PackageReference Include="IdentityServer4.EntityFramework" Version="4.1.2" />
        <PackageReference Include="Microsoft.Azure.Services.AppAuthentication" Version="1.6.2" />
        <PackageReference Include="BuildBundlerMinifier" Version="3.2.449" />
        <PackageReference Include="IdentityServer4" Version="4.1.2" />
        <PackageReference Include="IdentityServer4.AspNetIdentity" Version="4.1.2" />
        <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.9" />
        <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.9" />
        <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.3" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.9">
          <PrivateAssets>all</PrivateAssets>
          <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="5.0.0" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />
        <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
        <PackageReference Include="Remotion.Linq" Version="2.2.0" />
        <PackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="5.2.9" />
        <PackageReference Include="Sendgrid" Version="9.25.2" />
        <PackageReference Include="Serilog" Version="2.10.0" />
        <PackageReference Include="Serilog.AspNetCore" Version="4.1.0" />
        <PackageReference Include="Serilog.Settings.Configuration" Version="3.3.0" />
        <PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" />
        <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
        <PackageReference Include="Fido2" Version="2.0.2" />
        <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.9" />
        <PackageReference Include="NetEscapades.AspNetCore.SecurityHeaders" Version="0.16.1" />
        <PackageReference Include="NetEscapades.AspNetCore.SecurityHeaders.TagHelpers" Version="0.16.1" />
      </ItemGroup>
    
      <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
      </ItemGroup>
    
    
      <ItemGroup>
        <None Update="sts_dev_cert.pfx">
          <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
        <None Include="..\LICENSE">
          <Pack>True</Pack>
          <PackagePath></PackagePath>
        </None>
      </ItemGroup>
       
       <Target Name="DebugEnsureNodeEnv" BeforeTargets="Build" Condition=" '$(Configuration)' == 'Debug' And !Exists('node_modules') ">
        <!-- Ensure Node.js is installed -->
        <Exec Command="node --version" ContinueOnError="true">
          <Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
        </Exec>
        <Error Condition="'$(ErrorCode)' != '0'" Text="Node.js is required to build and run this project. To continue, please install Node.js from https://nodejs.org/, and then restart your command prompt or IDE." />
        <Message Importance="high" Text="Restoring dependencies using 'npm'. This may take several minutes..." />
        <Exec WorkingDirectory="" Command="npm install" />
      </Target>
       
    </Project>
    Ответ написан
    Комментировать
  • Какой браузер выбрать для анонимности на Windows?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Основной вопрос: зачем?
    Ты хочешь серфить по заблокированным страницам?
    - Любой с впн
    Ты хочешь что бы Байден не читал твою переписку в вк?
    - С гарантией никак.
    Ты просто хочешь что бы компании меньше о тебе знали?
    - Тут может быть достаточно режима инкогнито.
    Ты хочешь пользоваться сайтами с запрещенной информацией?
    - Никак. Тор отслеживается. Его сложнее отследить чем прокси/впн, но отследить вполне возможно. Но не стоит переживать по этому поводу пока ты не начал реально совершать какие-то действия. Если хочешь что-то купить на этих площадках, тебя отследят не по браузеру, а по крипто-кошельку.

    Все эти способы влекут за собой неудобства. Ты не можешь регистрироваться на площадках. Пользоваться большим колл-вом сервисов. Скорость будет медленная. Зачем?
    А вообще, пора смириться, что все все будут про тебя знать и просто думать что ты делаешь в интернете. Прошло время беззаботного серфинга.
    Ответ написан
    1 комментарий
  • Какой стек технологий лучше всего подойдет для работы с объемными базами данных?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    исходя из вышеизложенного, какой бы стек технологий вы бы выбрали как разработчик чтобы решить вышеописанную задачу?

    Для начала немного контекста - 2 важных примечания:
    1) Описанная задача решается на любом упомянутом стеке, + еще десяток возможных вариантов (Java/Spring, питон, нода, дотнет, голанг и т.д.).
    2) Быстродействие системы зависит от ее самой медленной части, и в 95% случаев самая медленная часть - БД, просто в силу специфики работы: много данных со сложными связями, выборки с сортировкой и фильтрацией из большого массива и вот это все, в то время как язык бэкенда в основном выполняет достаточно простые манипуляции с уже готовыми наборами данных (за редчайшими исключениями, которых в вашем кейсе нет, или они не описаны в вопросе).

    В вашем случае:
    - база можно сказать совсем небольшая, до 1 миллиона записей условный мускуль ворочает весьма шустро, если железо соответствует.
    - задача сбора метрик достаточно тривиальная, особого ума в сохранении действий пользователя не надо, бОльшая часть работы - вывод в красивые графики и написание быстрых запросов с хитрыми выборками/агрегациями, немного пошаманить с формулами, возможно делать какие-то сводные выборки с денормализованными результатами для отчетов и прочие мелочи. Работа не сложная, но нудная, и ее много.

    Насчет стоимости и условий:
    полный самопис 150к+ (я это не тяну) или же сайт на Laravel +MySQL а дальше варьируется.
    полный самопис - либо маркетинг, либо идиотизм, писать на голом языке не будет ни одна нормальная студия, в принципе в данном случае либо используется фреймворк и заказчику преподносится как "сделано вручную программистами девственниками под светом серебряной луны", либо разработчики идиоты, мнящие себя круче всех (нет). В первом случае это то же что и "сайт на Laravel +MySQL" (норма и стандарт для среднего уровня студий), во втором - развод на мани на пустом месте и попытка продать г**но в обертке "иксклюзивнасти".

    По цене - на сегодняшний день, если я не ошибаюсь, 150к деревянных это +- 1000уе. Цена приемлемая за нормальную работу, если найдете дешевле "на Laravel" - думаю будет вообще ок. Опять же, цены штука такая, кто-то за копейки сделает хорошо, кто-то за дорого каку сляпает. Влияет так же регион, понятно что в Мск цена будет серьезно больше чем в условном Челябинске...

    Важный момент - нормальное ТЗ в разы упрощает как поиск исполнителя, так и оценку работы. Я бы на вашем месте погрузился именно в тему создания качественного ТЗ, нежели в дебри современных технологий.

    UPD:
    проект планируется на 100 к+ посетителей в месяц...
    предупреждают что если аудитория достигнет условных 100 тысяч в месяц Лара начнет потихонечку задыхаться от нагрузки,
    ок, пусть будет 200к для наглядности.
    В среднем, если это маркетплейс, то постоянных посетителей будет не много, думаю около 10%, так что ими можно пренебречь. Условно - 200к / 30 дней = 6600 в сутки, при активных 10-12 часах посещения это ~600 в час. Пусть на 1 посетителя будет 5 запросов страниц, это 600*5=3000 в час = 50 в минуту или менее 1 запроса в секунду.
    Даже если умножить это на 30 (допустим такая пиковая нагрузка), 30rps вообще "ниачем". Не знаю кто там вам считал то это проблема, любое современное железо среднего уровня вытягивает без напряга.
    Ответ написан
    2 комментария
  • Что лучше - впн на телефоне или впн на роутере?

    @Drno
    Это по сути одно и то же
    Какие утечки должны быть на телефоне? куда?

    Для дома у меня стоит VPN до заблоченных сайтов на роутере, ибо дома куча всяких ПК\тел\ноутов и лень на каждом настраивать

    На тел использую когда не дома нахожусь

    Если что ВПН не дает особо сильно приватность, он дает возможность подключиться к сети через другой шлюз, а не через Вашего оператора связи
    Ответ написан
    4 комментария