Задать вопрос
  • Куда лучше поставить Windows?

    xez
    @xez
    TL Junior Roo
    Нечего тут думать.
    Конечно на SSD.
    Ответ написан
    Комментировать
  • Если удалить ветку, то что происходит с дочерними ветками?

    egor_nullptr
    @egor_nullptr
    Ветка - это указатель на коммит. Удаляя ветку, вы удаляете указатель, если на этот коммит больше нет указателей, то он "потеряется" (найти его можно будет только через git reflog).
    Ответ написан
    Комментировать
  • Что происходит на уровне БД при группировке?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По разному. Я думаю что разные DBMS (SQlite, Oracle) могут по разному обрабатывать группировку.
    Правильный ответ на вопрос - посмотреть execution plan комадой
    explain (plan) select ..... group by....;
    Наперед угадать какой будет использовал алгоритм - невозможно. Как вы помните
    язык SQL - это декларативный язык который декларирует свойства результата а не метод
    которым разрабочик хочет что-то сделать.

    Oracle например имеет много conditions для исполнения группировки например:
    1) Какой оценочный объем выборки? Может ли она быть отсортирована in-memory (sort-area-size) в противном
    случая будет external sorting в TEMP tablespace.
    2) Есть-ли композитный или простой индекс по полям группировки? В этом случае будет index-scan.
    3) Требует ли запрос немедленной выдачи первой пачки (хинт +FIRST_ROWS) или можно подождать
    но получить весь объем быстрее. Это тоже влияет на выбор алгоритма.

    Это всё эвристики которые влияют на выбор окончательного алгоритма.

    И уже к сортированной выборке собственно применяется лямбда которая делает группирующую операцию
    AVG, SUM, COUNT ... e.t.c. и выдает строки курсора.
    Ответ написан
    Комментировать
  • Как называются "\n","\r","\t"... в строках?

    drygdryg
    @drygdryg
    Python-разработчик
    Это специальные управляющие последовательности (англ. escape sequences), которые используются для записи пробельных (непечатных) символов (англ. whitespace characters). Все эти символы соответствуют шаблону \s в регулярных выражениях:
    import re
    
    print(all(re.fullmatch(r'\s', string) for string in ('\n', '\r', '\t', ' ')))  # True
    Ответ написан
    1 комментарий
  • Potsgres 13 - как реализовать систему Master-Master?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Никак.

    Если очень хотите головной боли и новых аварий по ночам вместо того чтобы спокойно спать - возьмите какой-нибудь autofailover типа patroni и прочих.

    Критичная проблема фундаментальна - CAP теорема в целом и последствия split brain в частности.
    Ответ написан
    2 комментария
  • Как игнорировать .gitignore?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    в .gitignore перечислены шаблоны имён файлов, которые гит будет игнорировать и не будет предлагать добавить в репозиторий, однако если файл уже есть в репозитрии и при этом также его имя соответствует одной из строчек файла .gitignore, то гит будет с ним работать как и со всеми прочими.

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

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

    @dima20155
    you don't choose c++. It chooses you
    Можно пройтись поиском в глубину (DFS) до последнего узла и дальше двигаясь в обратном направлении выполнить вычисления.
    1. вначале мы находим самую нижнюю ноду, а она точно цифра (в противном случае смысла нет)
    2. делаем шаг назад и выполняем вычисление
    3. редактируем имеющуюся структуру "укорачивая" дерево (то есть вместо знака действия у нас теперь цифра)
    4. делаем так пока не получим дерево состоящее только из корня, которое и будет решением.

    Попробовал написать решение твоей задачки, код по ссылке
    https://godbolt.org/z/PzWjYjvfz
    Ответ написан
    3 комментария
  • Как создать свой домен?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ICANN периодически проводит рассмотрение заявок на регистрацию доменов верхнего уровня. Стоимость такого домена порядка $200000 плюс отчисления от продаж поддоменов. Кроме этого вы должны создать и поддерживать инфраструктуру для обслуживания домена.
    Ответ написан
    3 комментария
  • Какую среду/язык выбрать для написания управляющей программы, работающей под Windows и Linux?

    Ну в общем-то Delphi нормально умеет компилироваться под линукс. Hemul GM подтвердит
    На счёт малинок не уверен.

    Можно ещё C# + Avalonia попробовать. Работа с USB-COM там вполне стабильная и интерфейсы красивые.
    Под малинку нормально собирается и работает, но порог вхождения не нулевой
    Ответ написан
  • Где провести опросы общественного мнения и спросить личное мнение по IT-тематике?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Напиши на Хабр годную статью и прилепи опрос в конце
    Ответ написан
    6 комментариев
  • Не проверяет тип при object spread?

    Alexandroppolus
    @Alexandroppolus
    кодир
    EntityReturn - более общий тип относительно Entity, поэтому в EntityReturn можно передавать объекты Entity.

    Ошибку про лишнее поле будет показывать, если ты передаешь в EntityReturn литерал с лишними полями:

    const entitie: EntityReturn = {
        id: "1",
        filename: ""
    };
    Ответ написан
    Комментировать
  • Почему значение переменной width выводит какие то неправильные числа?

    Переменные надо инициализировать. Без инициализации в них лежит мусор.
    Ответ написан
    Комментировать
  • Что использовать для отрисовки 3d графики на Rust?

    vabka
    @vabka Куратор тега Rust
    Самое модное и молодёжное - wgpu
    Умеет работать с Vulkan, Metal, OpenGL, DirectX, WebGL. На главной странице есть и примеры приложений

    Ещё, возможно, тебя заинтересует naga, как дополнение к wgpu - это либа для трансляции шейдеров.

    Ещё, возможно, тебя заинтересует bevy
    - это ECS-фреймворк для разработки игр и не только. В него встроена поддержка wgpu
    Ответ написан
    2 комментария
  • Какие лучшие практики запуска postgresql в продакшн?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Лучшие практики, это что наружу смотрит API которое и обрабатывает поступающие запросы. Никто в здравом уме не выставляет базу на мороз.
    Ответ написан
    Комментировать
  • Зачем нужна рекурсия в реальных случаях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Рекурсия нужна при обработке иерархических данных. Например - обойти файлы и каталоги
    в файловой системе и выполнить какое-то действие. Или действие с условием. Например если
    в текущем фолдере есть фолдер .git - то выполнить какой-то git script.

    Рекурсия может понадобиться при работе с документами XML/JSon (шаблон composer). И хотя
    в некоторых API рекурсия может быть частично скрыта за языками XPath/JSonPath тем не меннее
    ее рекурсивная природа остается налицо. Кроме того если вам достался узкий API типа DomDocument
    без поисковых диалектов - то обойти его можно на любом ЯП с рекурсивной функцией.

    Рекурсия нужна при парсинге сайтов. Это вобщем просто более расширенная трактовка работы с файловой
    системой. Если Url-s это как-бы файлы в web пространстве и они имеют ссылки друг на друга - то вы
    можете рекурсией это все обходить.

    Рекурсия почти всегда нужна при работе с графами. Берите любой алгорим на теорию графов и я готов
    спорить что 99% он будет содержать рекурсию.

    Все настольные игры (шахматы-шашки) в основе своего алгоритма альфа-бета поиска с отсечениями и
    BWF базируются на рекурсии.
    Ответ написан
  • Сколько запросов в секунду выдержить PostgreSQL?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Сам запрос:

    Узнайте про PostGIS
    Как вообще тестируют нагрузку на БД?

    Устраивают DDOS атаку
    Ответ написан
    Комментировать
  • Почему на GitHub не работает протокол git?

    Lynn
    @Lynn
    nginx, js, css
    Потому что GitHub его выпилил уже полгода как.

    Permanently disabled the unencrypted Git protocol
    Ответ написан
    2 комментария
  • Как для поля добавить ограничение на вводимые данные?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Не нужно пизать в БД лишнюю логику и лишние ограничения.
    У вас с БД работает какой-то софт, например бэкенд. Там и делайте валидаторы данных. В случае пола раньше можно было 1 и 0 удобно хранить и всё было абсолютно интуитивно и понятно, а русскую букву в качестве индекса держать неудобно и неправильно. Во-первых, она в UTF-8, наверняка, что уже как-то изврат для бинарного поля.
    Во-вторых, при локализации проблемы могут быть в логах надо юникодовую экранировку читать, если что... в общем либо международное F\M, либо кодами и 1\0 для мнемонического запоминания очень удобно. Вот угадайте что есть что и почему.=)

    Но по нынешним временам за такую бинарность могут и засудить=) Не иначе нужна целая таблица гендеров небинарных с названиями, описаниями и локализацией. Да ещё и меняться она будет со временем, а потом при импортах мапить надо одну таблицу полов на другую=).
    Шутки шутками, а 0\1 и тут хорошо лягут. Просто идентификаторы такие будут синтетические.

    Да, а ограничения делать не надо. Вы могли бы сделать триггер, который при изменении и вставке будет проверять значения полей, но лишняя логика амедляет БД и порой без реальной причины. Если система спроектирована верно, то ничего некорректного в БД попасть не должно.
    Многие часто даже от внешних ключей отказываются для ускорения бд, ведь за консистентностью вполне может следить бэкенд, а в каких то случаях лишний процент производительности не помешает.

    Ответ: на надо валидировать значения такого рода полей на уровне БД. Делайте так, чтобы нельзя было ввести неверно на уровне ввода данных от пользователя, и дополнительно валидируйте в бэкенде.
    Ответ написан
    7 комментариев
  • С чего начать изучение программирования?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    С изучения информатики и устройства вычислительной техники. Ну а далее уже можно выбирать что-то из современных ЯП: https://roadmap.sh/computer-science
    В целом же, написание кода - лишь одна из частей процесса разработки ПО. Так же рекомендую поставить какую-нибудь игру с редактором карт и освоить его. Например классику: WarCraft 3, StarCraft, HoMM 3.5/4 - легендарные игры, популярность которых обусловлена именно игровыми редакторами и которые смогли пройти сквозь целые эпохи. Возможность самому что-то сделать и поиграть - очень неплохо мотивирует к освоению редакторов и желанию разобраться как оно все работает )
    Ответ написан
    1 комментарий
  • Как начать заниматься "серьезной" разработкой?

    @StopFox
    Лао-цзы: «путь в тысячу ли начинается с первого шага»
    Брюс Ли: "Я не боюсь того, кто изучает 10,000 различных ударов. Я боюсь того, кто изучает один удар 10,000 раз"
    Повторение результата из раза в раз с сохранением того же качества это удел профессионалов. Поэтому много мелких однотипных проектов это даже хорошо, с минимальными усилиями вы нарабатываете будущую клиентскую базу людей которым вы помогаете сейчас и которые будут знать к кому обратиться в будущем. Через 10 лет ваши друзья разбегутся кто куда, станут семейными и откроют бизнес, а в нашей стране очень ценят работу "специалиста по знакомству", но помните любая работа должна быть оплачена и не стоит делать её бесплатно или со скидкой просто потому что знакомые, людей которые захотят вас использовать будет много. Просто примите это как правило.
    И еще, все великие начинали с того что брали за основу чьи то наработки и использовали их в своей работе. Поэтому не бойтесь использовать сторонние инструменты, я не говорю вам воровать, но на первых этапах направления которое вы выберете использовать чужое - ок.
    Деньги, второстепенное оно приходит с опытом само, не стоит сильно акцентировать внимание на том чтобы заработать миллионы, поверьте это не то что вы хотите на самом деле.
    Пока вы молодой, ищите себя в разных направлениях, не бойтесь рисковать и менять работу чтобы к 30 годам уже точно определиться с направлением которое вам близко к душе а не потому что "там больше платят".

    И вот еще видео для мотивации.
    https://youtu.be/w0Mc2CFxFyE
    Ответ написан
    3 комментария