• Почему не получается создать голый репозиторий на сервере для совместной работы с Git с использованием протокола SSH?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    обязательно ли в названии голого репозитория прописывать в конце .git?

    Это не название репозитория, а название папки. Оно может быть любым.

    Далее я пользовался документацией 4.2 Git на сервере — Установка Git на сервер

    Главой не ошибся? Если у тебя уже есть сервер GitLab, то и читай про него: 4.8 Git на сервере — GitLab

    Мне непонятна часть user@git.example.com:/srv/Git

    user — имя, под которым ты авторизован через ssh на внешнем компьютере
    git.example.com — адрес этого внешнего компьютера
    /srv/Git — путь к папке с репозиторием внутри внешнего компьютера

    Но это всё тебе не нужно если уже есть сервер. А GitLab это именно сервер.
    Не выдумывай ничего и делай по документации.

    там первоначально нужно создать пустой проект

    Это уже создаёт пустой голый репозиторий. Ничего руками копировать не надо. Да у тебя и прав нет на такой доступ.

    нажал на синюю кнопку Clone и мне высветились два варианта ссылки

    Если работать через https-протокол, то создавать ключи не придётся. Всё станет намного проще.

    Дальше ты либо клонируешь его себе на комп через
    git clone git@gitlab.com:potemkin277/test-project.git

    Либо связываешь свой уже существующий репозиторий с ним
    git remote add origin git@gitlab.com:potemkin277/test-project.git

    Затем отправляешь свою ветку туда и связываешь локальную и внешнюю ветки -u
    git push -u origin ветка
    Ответ написан
    2 комментария
  • Как преодолевают порог новичка в разработке и как не остаться "вечным новичком"?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Стандартный шаг с джуна в самостоятельнгого разработчика - примерно год. Первые 3-4 месяца Вы только начинаете понимать специфику проекта, в котором работаете, и осваивать используемые технологии.
    По мере роста опыта (причем часто без взгляда на какую то веху назад самому заметить этот рост сложно) Вам будут давать задачи посложнее, в том числе и на полностью самостоятельную проработку. И не ленитесь в свободное время повышать свою квалификацию, изучать что-то новое.
    Через год работы можно поговорить с руководителем о карьерном росте, росте зарплаты и т.п. Если руководитель адеквтный, он сам этот разговор может начать.
    Если скажут, что опыта все еще мало, то можно обновить резюме и искать работу на рынке.

    Отдельно отмечу, что сейчас ожидайте очень тяжелую ситуацию на рынке, закрытие многих проектов развития, уход отрасли в поддержку существующих решений. Но при этом должен вырасти внутренний рынок (импортозамещение). То есть идет перестройка рынка.
    Ответ написан
    2 комментария
  • Задача пустых полок?

    @Akina
    Сетевой и системный админ, SQL-программист.
    no_name_0,
    Это продуктовый магазин
    чеки:
    с временем покупки
    с товарами с количеством
    с номером магазина

    Не поверишь...

    Достаточно просто чётко фиксировать количество товара, выставленное на полки либо снятое с них. Тогда количество товара на полках на основании этих сведений и сведений из кассовых чеков можно ПОСЧИТАТЬ! Ну плюс-минус на разбитое, утащенное в соседнюю секцию и брошенное куда попало, оставленное на кассе по причине, скажем, нехватки денег, украденное и т.п. Всего-то и делов, что вздрючить мерчендайзеров и наладить нормально учёт.

    А ты тут с вероятностями дурью маешься.
    Ответ написан
    Комментировать
  • Чем Microsoft Exchange лучше бесплатных аналогов?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    В организации так дох.. денег? Лицензия на эксч + лицензия на сервер + лицензии на ящики... Или думаешь, что "война все спишет" и скоро разрешать как раньше "весь microsoft", "весь autodesk" etc?

    Сейчас - эксч крайне неудачный выбор.
    Достоинства? Полная интеграция с MS Office и AD, календарь+контакты+задачи
    Нелдостатки? Крайне хрупкий формат базы почты, требующий ежедневного бэкапа, тупейший imap, работать можно только по mapi, а он платный, кроме MS Outlook нет другого клиента (не считая веб-морды)
    Ответ написан
    2 комментария
  • Как быстро будет работать Windows и программы на сменном носителе?

    @rPman
    ssd + sata переходник на usb3
    это будет на порядок быстрее чем флешка, плюс у windows есть ряд ограничений по запуску с usb флешки, например нельзя разместить своп файл на него (на sata контроллер это может не распространяться но нужно смотреть, сможет ли bios нормально с него грузиться)
    Ответ написан
    Комментировать
  • Как исправить ошибку "Кадр не находится в модуле" при создании потока?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    "Кадр не находится в модуле". Подскажите с чем это может быть связано
    HANDLE h = CreateThread(
        NULL,
        0,
        factorial(gn),
        NULL,
        NULL,
        NULL
    );

    Третий параметр CreateThread -- указатель на функцию, которая будет запущена в создаваемом потоке. А у тебя записано скорее всего что-то другое. Если ты хотел запустить функцию factorial в потоке, она должна 1) иметь определённый прототип (вот такой), и 2) в функцию CreateThread надо передать её адрес, а не результат её вызова (например, так: CreateThread(NULL, 0, factorial, NULL, NULL, NULL)). 3) если ты сделаешь эти два изменения, тебе прийдётся также переделать передачу параметра в функцию factorial и получение результата её работы.
    Ответ написан
  • Можно ли реализовать графику на стандратных и системных библиотеках?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Да, конечно. Начиная от wingdi и заканчивая directx - Это все стандартные виндовые библиотеки.
    Ответ написан
    3 комментария
  • Какую книгу по компьютерным сетям почитать студенту?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    олиферы, йопт.
    танненбаум, если хочется больше академичности
    Ответ написан
    Комментировать
  • Порекомендуйте подходящую базу данных?

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

    Партицируйте прямо по суткам.

    Убирайте транзакции, нафиг вам тут innodb когда хватит myisam, оно на запись быстрее, у вас база write once read ... тоже once.

    У вас там база данных упирается случайно не в работу с диском? в облаке можно взять несколько дисков, они будут независимыми, раскидай по ним таблицы (myisam штатно поддерживает симлинки), что может дать прирост в скорости в разы только за счет этого, даже если они ssd, например отделить хранение индексов от данных или отделить старые данные от сегодняшних.

    На время обработки аналитики можно потюнить файловую систему и отключить flush для файлов таблиц (например ext4 data writeback и можно отключить журнал) - сильно ускоряет именно запись, особенно если много ram, это включает большой риск потери/порчи данных при сбросе ос но с другой стороны вероятность этого очень мала и как я понимаю, данные в базу и так пишутся из какого то другого хранилища, т.е. при проблеме с сервером просто перезапускается обработка за текущие сутки.

    Уберите индексы на запись, все, сначала пусть идет вставка данных без их индексации, затем создаете индекс (это на порядок быстрее) и уже потом строите аналитику.

    Общая аналитика должна не работать с самими данными, а с их посуточной выжимкой (возможно в результате и хранить их не придется) считай это самодельные индексы. Грубо говоря если в запросе на аналитику стоит count,max,min,.. то достаточно сложить посуточные значения и для глобальных считать уже по ним... само собой если запросы с условиями и сложными группировками, то надо думать но все решаемо.. грубый пример нужно считать агрегацию по часам, вот в индексы и пиши суточные значения по часам, а если надо постранично то для каждой страницы для каждых суток считаешь, потом агрегируешь уже по этим результатам.
    Ответ написан
    6 комментариев
  • Почему транслятор ожидает указатель в моем коде?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Параметр функции int arr[],

    Но далее у вас arr[i][j]. Компилятор пытается взять индекс j, но перед ним же уже число. Вот он вам и говорит "начальника, индекс я у массива (указателя) взять могу, а тут число, непонятно".

    Вы обращаетесь с одномерным массивом, как будто бы он двумерный.
    Ответ написан
    Комментировать
  • Как отсортировать данные структуры по алфавиту?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    У вас заводится переменная str, и как и компилятор вам говорит, вы ее ничем не инициализируете. А ниже используете в strcpy(str, sot[i - 1].familia). Эта функция принимает указатель на область памяти, куда надо скопировать строку. Но указатель указывает на случайное место. Т.е. программа, даже если чудом скомпилируется, упадет с исключением.

    Вам надо или для str выделять память через malloc, или объявить str массивом char фиксированного размера, как поле familia у структуры.
    Ответ написан
    Комментировать
  • Лучшие источники для изучения CPP?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    В самую первую очередь - это будет документация языка. Ее очень удобно использовать как справочник. Это - твой самый первый источник информации по любому вопросу.
    isocpp поддерживается создателем языка и содержит море полезной информации.
    C++ Core Guidelines является манифестом пользователя C++. Его знать обязательно. Документ регулярно дополняется.

    More C++ Idioms. Шаблоны проектирования имеют свою собственную многомерную классификацию. Идиомы - это функциональные шаблоны проектирования, применимые, как правило, или для конкретного языка, или для некоторого семейства языков. Эта открытая книга помогает ориентироваться в некотором начальном наборе идиом конкретно для языка C++.
    C++ Patterns - еще один полезный ресурс для изучения применимых к C++ шаблонов проектирования.
    С Fluent C++ ты уже знаком.
    Безусловно, блог создателей PVS-Studio.
    Habr, конечно же.
    Блогов очень много, их можно просто найти по релевантной фразе "C++ blog".

    Помимо этого есть большое количество каналов от разных конференций, доклады на которых всегда помогают понять язык лучше.
    С++Russia,
    C++Now,
    Pacific C++,
    CppCon,
    code::dive,
    Meeting C++.

    Так же будет полезно изучить книги авторов:
    Андрея Александреску,
    Герба Саттера,
    Девида Вандервуда,
    Скотта Мейерса,
    Роберта Мартина.
    Есть и другие очень полезные авторы. Тут у меня, пожалуй, только самый основной список.

    Последим, и самым важным, источником будет текущая рабочая версия стандарта языка, а так же пара лабораторий для практики: Compiler Explorer и C++ Insights.
    Ответ написан
    Комментировать
  • Теряются/бьются UDP пакеты на localhost, так и должно быть?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Потеря пакетов на localhost может быть, если очень много данных. Просто буфер где-то кончается и все.
    А вот битые данные - это уже 100% где-то у вас в программах ошибки.
    Ответ написан
    Комментировать
  • В чем отличие образов Consumer Edition от образов из Media Creation Tool?

    @MikeDeveloper
    В сборнике Consumer Edition присутствуют редакции Домашняя и Домашняя для одного языка, но отсутствует корпоративная редакция.

    B Business Edition же присутствует корпоративная редакция и отсутствуют домашние.

    Это объясняется тем, что сборник Business Edition ориентирован на корпоративный сегмент и позволяет использовать VL лицензии Microsoft, в то время как Consumer Edition предназначен для частных лиц и позволяет использовать самый низкий уровень лицензии Ноmе.
    Ответ написан
    1 комментарий
  • Что делает команда cls < NUL?

    Vindicar
    @Vindicar
    RTFM!
    Ну вообще < - это перенаправление ввода программы, так же как > - перенаправление стандартного вывода программы. NUL - это устройство (псевдофайл), точнее пустое устройство. Вывод в него не даёт ничего, а ввод эквивалентен чтению пустого файла.
    Вот только зачем это cls...
    Ответ написан
    Комментировать
  • Существует ли тенденция избегать size_t, если это возможно?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Если есть риск присванивания знакового значения в беззнаковое, компилятор выдаст WARNING

    Гораздо опаснее пихать всюду int, особенно в качестве индексов массивов и размеров. Потому что в какой-то момент кто-то захочет посчитать больше 2^31 штук объектов.

    Выдержка из материала по ссылке:
    большое количество диагностических сообщений, выдаваемых анализатором Viva64, связанны именно с рекомендацией использования memsize-типов. Использование memsize типов (таких как size_t, ptrdiff_t, INT_PTR) в 64-битных программах, вместо 32-битных типов (int, unsigned) позволяет:

    Построить компилятору более простой и, следовательно, более быстрый код, в котором будут отсутствовать лишние преобразования 32-битных и 64-битных данных. Особенно это полезно при работе с адресной арифметикой и индексации массивов.
    Избежать ряда ошибок при обработке большого объема входных данных, когда количество обрабатываемых элементов превышает количество UINT_MAX.
    Избежать ряда других, более специфичных ошибок.
    Сделать код более переносимым между 64-битными Windows и Linux системами, в которых используются различные модели данных. Так, например, в Linux системах для индексации больших массивов можно использовать тип unsigned long, а в Windows нет.
    Ответ написан
    7 комментариев
  • Что не так в коде?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    for (int i = 0; i < currentNodeToPrint->childNodes[1]->elements.size();i++)

    Здесь точно должен быть индекс 1, а не t?
    Ответ написан
    Комментировать
  • Как записать файл в определенное место hdd?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Под Windows столь необычный трюк можно выполнить своим кодом, используя FSCTL_MOVE_FILE. Т.е. не создавая файл, а перемещая существующий.

    Либо накидав на диск кучу файлов, а потом с помощью nfi.exe (NTFS File Sector Information Utility), или DiskView, или fsutil querycluster посмотрев что именно лежит в интересующих вас секторах.

    То же самое можно сделать в hex-редакторе, но тут уже требуется некоторое понимание файловых систем.

    Под Linux загляните в исходники dd (в качестве потенциального источника идей) и посмотрите на --write-sector в hdparm.

    Также можно воспользоваться debugfs:
    debugfs:  testb 100500
    Block 100500 marked in use
    debugfs:  icheck 100500
    Block   Inode number
    100500  1488
    debugfs:  ncheck 1488
    Inode   Pathname
    1488    /home/psiklop/hentai.mkv

    Кроме того, в своё время был DiskExplorer, но RunTime, по-моему, очень давно не обновляли свои инструменты, так что не знаю насколько оно работает сейчас.

    нужная прога вылетает

    Если же говорить в целом, то сама по себе такая идея - не очень. У вас уже пошли вылеты, а в будущем диск здоровее не станет, только продолжит покрываться бэдами.
    Так что запись файлов, создание разделов вокруг, лечение (remap) и прочие ухищрения относительно bad block'ов - это пластырь на умирающую лошадь.

    Забэкапьте содержимое всего диска и попробуйте сдать его по гарантии, если она не закончилась. Если закончилась, то используйте как свалку для того, что не жалко потерять.
    Ответ написан
    1 комментарий
  • Внесение данных в std::vector< GLfloat >?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Вектор перед работой с его индексами необходимо привести к требуемому размеру.
    Делается это с помощью метода resize[?].
    После этого можно обращаться к значению по индексу напрямую.

    Если размер вектора уже определен и необходимо именно вставить данные по индексу, то воспользоваться можно методом insert[?].
    Однако, первым параметром метод требует не индекс, а итератор внутри вектора, куда требуется выполнить вставку. Этот итератор можно получить через смещение итератора начала вектора на требуемый индекс.
    vertexBuffer.insert( vertexBuffer.begin() + 1, x );

    При этом важно контролировать чтобы индекс вставки не выходил за пределы размера вектора.
    Забывать не стоит и о том, что при вставке велика вероятность реаллокации памяти под элементы вектора, в следствии чего уже все итераторы и ссылки на элементы вектора будут инвалидированы.
    Ответ написан
    1 комментарий
  • Существует ли тип данных int?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Есть три типа данных - short int, int и long int.
    Компилятор не решает, какого типа будет переменная. Программист должен объявить это явно.
    Компилятор решает, какого размера будет переменная каждого типа.
    Ответ написан
    1 комментарий