Задать вопрос
  • Что такое кластер баз данных?

    bingo347
    @bingo347
    Crazy on performance...
    Попытаюсь объяснить на пальцах
    В большинстве случаев основная нагрузка идет на чтение БД, часто бывает, что одна машина не справляется с существующей нагрузкой, тогда поднимают кластер — запускают СУБД на нескольких машинах, одна из них объявляется мастером, остальные репликами
    Мастер занимается только записью и распространением готовых изменений по репликам
    А читаем мы только из реплик, балансируя нагрузку между ними, тем самым снижая нагрузку на каждую из них и уменьшая время отклика
    Ответ написан
    1 комментарий
  • Что такое кластер баз данных?

    @bychok300
    Кластеризация, если говорить простыми словами, - это разбиение на группы, по определенным критериям. Кластер это группа объектов.
    Ответ написан
    Комментировать
  • Как починить регистр * в vim?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Из :help registers:
    8. Selection and drop registers "*, "+ and "~
    Use these registers for storing and retrieving the selected text for the GUI.
    See quotestar and quoteplus. When the clipboard is not available or not
    working, the unnamed register is used instead. For Unix systems the clipboard
    is only available when the +xterm_clipboard feature is present. {not in Vi}


    В debian 9 без vim-gui-common:
    $ vim --version | grep -o .xterm_clipboard
    -xterm_clipboard

    так что и не должно работать. После установки vim-gui-common:
    $ vim --version | grep -o .xterm_clipboard
    +xterm_clipboard
    Ответ написан
    Комментировать
  • Как связать Gitlab CI и проекты Visual Studio?

    bstdman
    @bstdman Автор вопроса
    Desktop разработчик
    Отвечу сам себе, вот пример job script для построения Release и Debug конфигураций, с восстановлением пакетов из Nuget (e3Shell.Extensions.sln - имя файла решения):

    git submodule update --init
    ls -la
    
    echo "Restoring NuGet Packages..."
    "c:\nuget\nuget.exe" restore "e3Shell.Extensions.sln"
    
    echo "Debug build..."
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Debug /verbosity:quiet "e3Shell.Extensions.sln"
    
    echo "Release build..."
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "e3Shell.Extensions.sln"
    
    echo "Build success."


    Update 27.10.15: для новых версий Gitlab (начиная с версии 7.12) в репозитории создается файл .gitlab-ci.yml со следующим содержимым:
    stages:
      - build
    
    job:
      stage: build
      script:
      - git submodule update --init
      - ls -la
      - ''
      - echo "Restoring NuGet Packages..."
      - '"c:\nuget\nuget.exe" restore "TerminalClone.sln"'
      - ''
      - echo "Debug build..."
      - C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe /consoleloggerparameters:ErrorsOnly
        /maxcpucount /nologo /property:Configuration=Debug /verbosity:quiet "TerminalClone.sln"
      - ''
      - echo "Release build..."
      - C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe /consoleloggerparameters:ErrorsOnly
        /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "TerminalClone.sln"
      - ''
      - echo "Build success."
      tags: 
      except:
      - tags
    Ответ написан
    Комментировать
  • В чем суть WinApi?

    @Mercury13
    Программист на «си с крестами» и не только
    Windows API — это самый низкоуровневый интерфейс Windows, доступный прикладному программисту — в том плане, что он на долгосрочной поддержке и не изменится с Windows 11.

    Поверх Windows API работают все BOOST и STL.

    Пример: читать файл в 130 мегабайт по одному байту. Добавив асинхронного чтения через OVERLAPPED, я сумел это сделать менее чем за 2 секунды (это был поток общего назначения с виртуальными read(), write() и seek(); специализированный прикладной буфер даст ещё выигрыша, но и это хорошо). То же самое через FILE* — не дождался.

    Пример второй, всё те же файлы. Дело в том, что Excel захватывает свои файлы на всё время, пока он открыт. Закрывать? — плохой выбор. Добавив один флажок в CreateFile, документы всё-таки стало возможным открывать при работающем Excel.
    Ответ написан
    2 комментария
  • Как реализовать класс стека на указателях и на массиве в одной программе?

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

    @uugh
    «Цифровая схемотехника и архитектура компьютера» Дэвида Харриса и Сары Харрис

    https://habrahabr.ru/post/259505/
    https://habrahabr.ru/post/306982/

    https://community.imgtec.com/downloads/digital-des...

    https://www.dropbox.com/s/7xqqq9mqjxz3lhi/digital-...

    https://yadi.sk/i/vstY0ZXxtsjuA
    Ответ написан
    Комментировать
  • Как научиться разбираться в железе?

    @koronabora
    Человек
    С точки зрения программиста, я-бы изучил дополнительно следующие вещи:

    1) Конвеер процессора
    2) Кеш память
    3) Шина данных
    4) Многопоточность процессора (у AMD сейчас одна, у Intel другая)
    5) Ускоряющие инструкции, типа SSE

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

    Ranwise
    @Ranwise
    Архитектура компьютера, Таненбаум Э.
    Архитектура компьютера и проектирование компьютерных систем, Д. Паттерсон, Дж. Хеннесси

    читать разделы на профильных форумах, где пользователи подбирают себе конфигурации...
    Ответ написан
    Комментировать
  • Увидим ли мы C# на Linux?

    dordzhiev
    @dordzhiev
    Если говорить кратко, то под линукс есть две основные реализации CLR и BCL: Mono и .NET Core.

    С Mono все понятно, сторонняя реализация возглавляемая Мигелем де Икаса (один из основателей GNOME). Mono уже переболела свои детские болезни, и очень даже хорошо справляется со своей задачей. Более того, с открытием исходников .NET, разработчики постепенно заменяют свой код для большей совместимости с MS-реализацией.

    Но не так давно Microsoft объявила о разработке своей собственной реализации под названием .NET Core. Грубо говоря это привычный нам CLR (CoreCLR) и урезанная BCL (CoreFx), но не требующая установки и с открытым исходным кодом. И самое главное - кроссплатформенность. Официально портируется на Linux и Mac OS X, но разработчики с радостью принимают пулл-реквесты, так что силами сторонних разработчиков постепенно делается поддержка Free BSD.

    Параллельно с этим ведется разработка ASP.NET 5 и EF7, которые будут работать и на .NET Core. Так что да, в скором времени ASP.NET и консольные приложения будут хорошо себя чувствовать и на Linux, и на других ОС.

    Более того, совсем недавно Microsoft объявила о начале работы над LLILC - компилятор IL -> IR, что позволит для работы .NET приложений использовать LLVM вместо CLR. Что это даст? Больше поддерживаемых платформ, .NET приложения смогут работать на всех архитектурах, поддерживаемых LLVM.

    Хотите узнать как обстоят дела? Следите за гитхабом: .NET Core и ASP.NET. Оба проекта принимают пулл-реквесты, так что вы всегда можете помочь проектам.
    Ответ написан
    2 комментария
  • Clang и LLVM. Что это?

    @MiiNiPaa
    Да, вы правы. Clang — фронтэнд генерирующий промежуточное представление. LLVM берёт промежуточное представление (уже вне зависимости от языка на котором писался код оригинально), оптимизирует и генерирует бинарный файл.

    GCC использует схожую систему (до clang LLVM вообще принимала IF от GCC). Это позволяет иметь один бэкэнд для множества языков. Разрабатывать заного фактически приходится только парсер.
    Ответ написан
    Комментировать
  • Можно ли в C++ передавать массивы в функцию сразу при объявлении?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Можно так:
    #include <iostream>
    
    void func(std::initializer_list<int> data)
    {
    	for(const auto& item : data) {
    		std::cout << item << std::endl;
    	}
    }
    
    int main() {
    	func({1, 2, 3});
    	std::cout << std::endl;
    	func({1, 2, 3, 10, -1, 15});
    	return 0;
    }
    Ответ написан
    2 комментария
  • Зачем нужно знать машинный код?

    Denormalization
    @Denormalization
    Раньше, во времена *.com файлов, было модно прийти на тусовку, и прям в debug.exe написать програмку в машинных кодах, и все такие "АХ!!1"

    Но вообще да, это всё выдумки режисеров и сценаристов. Никто не пишет в машинном коде. Да, для reverse engineering можно запомнить несколько опкодов, но по большей части это никому не надо. (0.0001% кому это нужно - погрешность).
    Ответ написан
    1 комментарий
  • Uxterm. Как заставить export работать между 2 вкладками?

    DevMan
    @DevMan
    если по простому - никак: експорт работает в пределах текущего шела (и его потомков), а разные табы = разные/независимые шелы.

    как вариант - писать эти переменные в файл, который инклудить в профиле/рц-файле.
    Ответ написан
    5 комментариев
  • Почему медленно работаю через ssh?

    athacker
    @athacker
    Настройте постоянный мониторинг нагрузки на сервак. Возможно, какие-то короткие периодические нагрузки. Или реально -- диск тупит/сыплется при обращении к определённым областям.

    К тому же, тот факт, что пинг идёт быстро -- не означает отсутствия проблем в канале. Пинг и SSH слегка на разных протоколах стека работают. Как-то расследовали неописуемый случай, когда адово тупил SSH. При этом всё остальное было в норме. Расследование показало, что если подключиться к серваку по L2TP и зайти на SSH через туннель, то никаких тормозов не было. L2TP работает по UDP. Мораль была такова -- у провайдера были проблемы на канале при обработке TCP-трафика, при этом UDP и ICMP никаких проблем не испытывали.
    Ответ написан
    Комментировать
  • Dns resolve на разные порты?

    @Wexter
    Ставите на 1.2.3.4.5 балансировщик haproxy/nginx, поднимаете на нём два домена, example.ru с проксированием на порт того что сейчас висит на 80 порту (естественно сменив порт на другой) и app.example.ru с проксированием на 6105
    Ответ написан
    Комментировать
  • Dns resolve на разные порты?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Никак. Домен не резолвит в порты, он резолвит только в IP

    Редирект вам нужно делать не на ДНС, а на вашем веб-сервере.
    Например приложение должно обращаться не к domain.com, а к domain.com/app
    Соответственно веб-сервер можно легко подстроить, чтобы все что приходит на app он редиректил на domain.com:6105 или domain.com:6105/app
    Ответ написан
    Комментировать
  • Как привязать субдомен с другому серверу?

    qmax
    @qmax
    программер
    Прописать в DNS разные IP для разных доменов:
    domain.com. IN A IP1
    shop.domain.com. IN A IP2
    Ответ написан
    7 комментариев
  • Как осуществить вывод видео-потока с сервера, при помощи PHP, клиенту?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    ну не кроите...
    в апаче есть mod_proxy для этого...
    ProxyPass /video/ http://192.168.0.100:8080
    и все работает.
    Ответ написан
    3 комментария