• Как выставить высоту codemirror на всю высоту страницы?

    @pakep Автор вопроса
    Я потратил много времени в гугле, но в итоге самостоятельно пришел к такому решению, может быть, способ не самый идеальный, но вот:
    1. Задаем значение высоты для div к которому будет привязан Codemirror
      <div id="code" style="height: 100vh"></div>

    2. Задаем настройки для Codemirror и добавляем стиль
      var editor = CodeMirror(document.getElementById('code'), {mode: "javascript"});
      
      var editorClass = document.getElementsByClassName("CodeMirror");
      for(var i = 0; i < editorClass.length; i++){
      editorClass[i].style.height = "100%";
      }


    Ответ написан
    Комментировать
  • Есть ли польза от codewars?

    Bandicoot
    @Bandicoot
    Вась-программист
    Наиболее полезная фишка этого ресурса - после самостоятельного решения задачи можно посмотреть решения других участников, сравнить их со своим. Очень помогает в написании качественного кода.
    Ответ написан
    7 комментариев
  • Django vs Asp.net?

    NightmareZz
    @NightmareZz
    Нищий разработчик из Симферополя
    И питон и дотнет - это не просто языки, фреймворки и технологии, это огромные пласты программерской деятельности с миллионными коммьюнити. Оба из них весьма популярны и имеют крайне широкое применение. Есть безусловно и отличия, но их всех не перечислить, как не перечислить достоинств и недостатков. Потому выбор чего-то одного из этого, это - либо вопрос случайности, приверженности, или определённого склада ума. Нельзя просто так взять и посоветовать что-то одно.
    Ответ написан
    Комментировать
  • Нуборазмышления по поводу интерпретируемых Java\python\c# и компилируемых с++\с итп?

    Интерпретируемый язык - проходит 2 стадии вместо одной ( интерпретация в байт код и компиляция), компилируемый язык - 1 стадия( компиляция).


    Ох. Во-первых, не бывает интерпретируемых или компилируемых языков. Для любого языка можно написать реализацию как в виде интерпретатора, так и в виде компилятора. Во-вторых, не бывает «интерпретации в байт-код», интерпретация вообще не может быть «во что-то». Интерпретация — это непосредственно исполнение кода программы другой программой.

    На деле реализации ЯП можно поделить примерно следующим образом:

    • Трансляторы
      • Трансляторы в низкоуровневые языки (компиляторы)
        • Ahead-of-Time компиляторы (компилируют один раз, заранее)
        • Just-in-Time компиляторы (компилируют прямо во время выполнения программы, «на лету»)
      • Трансляторы в высокоуровневые языки
    • Интерпретаторы


    Так, например, GCC — статический компилятор, OpenJDK — транслятор в байт-код + JIT-компилятор байт-кода, CPython — транслятор в байт-код + интерпретатор байт-кода.

    Для языков со статической типизацией и ручным управлением памятью (C, C++, Rust etc) наиболее эффективными оказываются статические (AOT) компиляторы. Для динамических же языков со сборщиком мусора зачастую эффективнее оказывается компиляция «на лету» (just-in-time), поскольку это позволяет компилятору использовать статистику запусков для сложных оптимизаций. «Настоящие» интерпретаторы (т. е. не являющиеся на самом деле JIT-компиляторами) обычно оказываются медленнее компиляторов.

    То значит откомпилированная игра на Java, может не уступать по производительности игре написанной на с++?


    Может, если реализация на C++ низкого качества. В общем случае код на Java будет медленнее аналогичного на C++, из-за сборщика мусора и type erasure.
    Ответ написан
    Комментировать
  • Нуборазмышления по поводу интерпретируемых Java\python\c# и компилируемых с++\с итп?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    С чего вы взяли, что в игре 90% это текстуры?
    Что значить "делать текстуры"? Видеокарта наштампует вам текстур, а что с ними делать? Кто будет вычислять что выводить, в каком порядке, почему?
    Как именно java связывается в видеокартой? Она же не может слать в нее напрямую, как минимум ваша программа должна общаться с драйвером видеокарты.
    А до драйвера видеокарты можно использовать графический фреймворк, иначе вам нужно изучть оптику, 3д моделирование, геометрию на таком уровне, что начать писать игру вы начнете лет через 10-15.
    А для C++ под винду есть готовый DirectX, который сделает за вас 90% работы. А под java нет DirectX...

    В общем, вы не совсем то пытаетесь посчитать.
    Ответ написан
    Комментировать
  • Если тратить по 8-10ч в день на программирование, возможно ли дорасти до уровня middle разрб?

    Достаточно много людей начинают работать на аутсорсе со 2-3 курса. Работа в команде для достижения уровня мидла дает больше чем 2 с половиной года по 8 часов в день.
    Если 8 часов в день кодить, можно двинуться кукушечкой и до мидла не дотянуть.
    Учи Английский, это правильно, говори на нем, в идеале с носителями, трать разумное время на теорию и практику в разработке, отдыхай и занимайся нетворкингом и успех тебе гарантирован.
    Ответ написан
    Комментировать
  • Если тратить по 8-10ч в день на программирование, возможно ли дорасти до уровня middle разрб?

    neuotq
    @neuotq
    Прокрастинация
    Ключевое отличие миддл от джуна - опыт коммерческой разработки, хорошо если над продуктом и в команде. Нередко даже у джуна может быть более высокий общий уровень хардскилов чем у хорошего мидла.
    Тоже касается и сеньоров и тп.
    Поэтому начните с фриланса, пытайтесь найти заказы не мелкие, а средние, большие.
    Ищите, где можно устроится интерном/джуном парттайм в команду.
    Ответ написан
    3 комментария
  • Каков тут алгоритм?

    delphinpro
    @delphinpro
    frontend developer
    Двоичная записьДвоичная, с нулямиДесятичная
    110113
    10011
    1001004

    3 + 1 = 4
    Ответ написан
    Комментировать
  • Как еще чуть ускорить алгоритм?

    Vindicar
    @Vindicar
    RTFM!
    А не проще ли будет сделать в два прохода.
    Прямым проходом делаем так: если 0, то счетчик в ноль, иначе счетчик + 1 и элемент приравниваем счетчику.
    Потом то же самое делаем обратным проходом, но изменяем элемент только если он больше счетчика.
    Отсюда получаем:
    lst=[5, 3, 0, 2, 0, 3, 8, 2, 9, 7, 0, 0, 7, 1, 5, 3]
    L = len(lst)
    # если в начале списка не 0, то мы сможем задать корректные значения только на обратном ходе
    # так что ставим заведомо большее значение счетчика
    counter = len(lst) if lst[0] != 0 else 0
    for i in range(0, L):
      if lst[i] == 0:
        counter = 0
      else:
        counter += 1
        lst[i] = counter
    # обратный ход
    counter = lst[-1] - 1 #чтобы не запороть последние элементы
    for i in range(L-1, -1, -1):
      if lst[i] == 0:
        counter = 0
      else:
        counter += 1
        lst[i] = min(counter, lst[i])
    
    print(lst)
    # [2, 1, 0, 1, 0, 1, 2, 3, 2, 1, 0, 0, 1, 2, 3, 4]

    Правда, это даст некорректный результат, если список не содержит нулей. Но это можно обнаружить в ходе первого прохода.
    Ответ написан
    2 комментария
  • .net это библиотека C#?

    Ну вообще с неймингом у майков есть проблемы, да.
    .NET - Это общее название для всей экосистемы, которая включает в себя все реализации виртуальных машин, все языки, и все компиляторы.
    .NET Framework, .NET Core, .NET 5,6, Mono - это реализации виртуальной машини и стандартной библиотеки. Виртуальная машина исполняет код на промежуточном языке.
    .NET standard - спецификация на стандартную библиотеку
    CIL, MSIL - Название промежуточного языка .NET (да, одно и то же называется одним именем)
    ADO.NET, ASP.NET и прочее - это либо части стандартной библиотеки, либо части фреймворка. (например aspnetcore не входит в .netstandard, зато идёт вместе с .NET 5).
    Roslyn и csc - компилятор C#
    Ответ написан
    2 комментария
  • Почему при возведении -1000 в 1/3 степень получается Nan?

    @galaxy
    Разный ответ из-за приоритета операций. -1000 ** (1 / 3) вычисляется на самом деле как -(1000 ** (1 / 3))

    Если вам интересно, почему в первом случае результат NaN - дело в том, что 1/3 не имеет точного представления в двоичной floating-point форме. Как и любая рациональная дробь, эта будет приближена некоторой дробью вида A/2N (A - нечетное целое). Что равносильно извлечению N квадратных корней из отрицательного числа (-1000)^A
    Ответ написан
    2 комментария
  • Почему при возведении -1000 в 1/3 степень получается Nan?

    @alexalexes
    Выражение:
    $result = -1000 ** (1 / 3);
    выполняется с таким приоритетом:
    $result = -(1000 ** (1 / 3));
    Поэтому тут нет NAN.
    Ответ написан
    Комментировать
  • Как в Dictionary обратиться к элементу по индексу?

    ayazer
    @ayazer
    Sr. Software Engineer
    Словарь не гарантирует сохранение порядка, потому если он важен - можно использовать специальный класс
    https://docs.microsoft.com/en-us/dotnet/api/system...

    var dict = new OrderedDictionary();
    dict.Add("test1", 1);
    dict.Add("test2", 2);
    dict.Add("test3", 3);
    
    var first = dict["test1"];
    var second = dict[1];
    
    Console.WriteLine(first); #1
    Console.WriteLine(second); #2
    Ответ написан
    Комментировать
  • Как сократить данный код?

    Если совсем упороться, то можно вот так сделать:
    new[] { lEntry.Message, lEntry.Sender, lEntry.Level }
      .Any(x => x.Contains(searchText, StringComparsion.OrdinalIgnoreCase)

    Ну или ещё можно написать свой метод, который будет в любой из n строк искать подстроку.

    Например вот такой:
    public static bool IsSubstringOfAny(this string search, params string[] samples) =>
      samples.Any(x=>x.Contains(search, StringComparsion.OrdinalIgnoreCase));
    Ответ написан
    2 комментария
  • Как работает ToString()?

    Читай про наследование, полиморфизм, и как работает модификатор virtual.

    Если коротко - когда ты приводишь свой объект к базовому - рантайм всё равно знает, где находится реализация метода ToString благодаря тому, что в твоём объекте хранится указатель на реализацию этого метода.
    Ответ написан
    2 комментария
  • Как работает ToString()?

    idShura
    @idShura
    Ответ на ваш вопрос тут Object.ToString Метод
    Ответ написан
    Комментировать
  • В чeм разница и как правильно сделать?

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

    Ну и вот результаты замеров
    using BenchmarkDotNet.Attributes;
    using BenchmarkDotNet.Running;
    
    BenchmarkRunner
        .Run<RandomBenchmarks>();
    
    [MemoryDiagnoser]
    public class RandomBenchmarks
    {
        private static readonly Random Random = new();
    
        [Benchmark]
        public void Reuse()
        {
            Random.Next();
        }
    
        [Benchmark]
        public void CreateNew()
        {
            new Random().Next();
        }
    }


    // * Summary *
    
    BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22463
    AMD Ryzen 5 4600H with Radeon Graphics, 1 CPU, 12 logical and 6 physical cores
    .NET SDK=6.0.100-rc.1.21463.6
      [Host]     : .NET 6.0.0 (6.0.21.45113), X64 RyuJIT
      DefaultJob : .NET 6.0.0 (6.0.21.45113), X64 RyuJIT
    
    
    |    Method |       Mean |     Error |    StdDev |  Gen 0 | Allocated |
    |---------- |-----------:|----------:|----------:|-------:|----------:|
    |     Reuse |   3.128 ns | 0.0987 ns | 0.1351 ns |      - |         - |
    | CreateNew | 114.934 ns | 2.3160 ns | 4.8852 ns | 0.0343 |      72 B |
    
    // * Legends *
      Mean      : Arithmetic mean of all measurements
      Error     : Half of 99.9% confidence interval
      StdDev    : Standard deviation of all measurements
      Gen 0     : GC Generation 0 collects per 1000 operations
      Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
      1 ns      : 1 Nanosecond (0.000000001 sec)

    Может показаться, что 72 байта на операцию - это не много, но это:
    1. Это 70мб на 1млн операций, против 72байт
    2. Это миллион лишних объектов в куче против одного, что добавляет лишней работы для GC
    Ответ написан
    2 комментария
  • Как вы (программисты) учились в ВУЗах?

    azrail_dev
    @azrail_dev
    Учился в колледже, закончил с красным дипломом. Поучился в вузе год - ушел, немного жалею, мат. анализ и операционные системы преподавали очень талантливые преподаватели. Работаю php пррограммистом.
    Ответ написан
    Комментировать
  • Диплом специалиста в IT заграницей, имеет ли вес?

    Jacen11
    @Jacen11
    что скажут зарубежные работодатели

    в зарубежье так то много стран и везде по разному
    например в германии есть список российских универов и у них всех стоит определенный грейд, вообще он нужен для поступления в их универы и получения визы, но может на него работодатели тоже смотрят. Видел статью на хабре, там чувак говорил что в германии универ сразу прибавку к зп дает. В канаде универ может помочь в миграции, дает сколько то там баллов, но быть моложе 35 давало больше баллов, чем диплом(может уже поменялось, давно смотрел). В скандинавии работодатель доложен обосновать почему они не смогли найти спеца у себя и берут за границей, может диплом поможет тогда, но опыт будет важнее

    специалист, к тому времени с опытом работы и навыками

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

    Я кстати даже не знал что специалитет решили оставить, вообще его вроде к бакалавриату обычно приравнивают, не понимаю нахрена он нужен.
    Ответ написан
    Комментировать
  • Как учить C++ программисту который не учился в вузе в данной сфере?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Учился или нет роли не играет вообще никакой. Простых книг не бывает впринципе, мало того они устаревают очень быстро т.к. язык развивается и меняется также быстро. Кроме того qt, msvs и gcc хоть и являются с++ но очень непохожи друг на друга. Дальше, банально учить с++ надо ооочень долго и постоянно, его невозможно выучить для фана и вообще выучить.
    Для того что написали "Хочу понимать на базовом уровне. " лучше, быстрее и выгоднее учить просто С т.к. его еще и использовать сможете по назначению в других языках.
    Ответ написан
    4 комментария