• Сколько ядер процессора хватит для программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Имеет смысл взять слабую конфигурацию. На ней автор быстро почувствует узкие места кода и займется
    оптимизацией. И потом в продуктиве этот код станет быстро работать.

    Хороший мотиватор.
    Ответ написан
    5 комментариев
  • Приделывать Git на сайт это хорошо?

    vabka
    @vabka
    Токсичный шарпист
    git - это система контроля версий.
    Это не "локальное хранилище" и не нечто, что можно "приделать" сбоку.

    Предположу, что под словом "приделать" вы имеете в виду использование git для доставки обновлений на продуктивный сервер.
    Моё мнение - так делать не стоит.
    Серверу совершенно не нужно хранить у себя всю историю версий.

    А вот локально да - лучше вести разработку в git.
    Ещё по хорошему следует хранить копию репозитория на каком-нибудь ещё сервере, например в собственном экземпляре gitlab и синхронизировать её с локальной при помощи git pull/push.

    Ну и помни, что не надо все файлы в git запихивать. В git должны храниться только исходные файлы. Всякие картинки - в git-lfs.
    Пароли - в каком-то другом хранилище.
    Артефакты, которые создаёт компилятор или препроцессор - в .gitignore
    Ответ написан
    1 комментарий
  • Как запустить python и php скрипт через .exe?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Код переделывать не нужно.
    Ровно как и "запихивать" все в exe.
    Как минимум потому-что:
    • Большинство доступных хостингов работают на линуксе.
    • Цены на windows-хостинги на порядок выше. Да и случае с хостингами в РФ/РБ вообще непонятно что будет.
    • Сомнительная работоспособность - ни один из указанных языков не подразумевает работу в виде exe-файла и использование сборщиков вполне может привести к разного рода ошибкам.
    Ответ написан
    3 комментария
  • Возможно ли полностью покрыть поле паркетом без пересечений?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Не указаны ограничения, поэтому нельзя точно сказать, что это решение будет самым быстрым, но скорее всего задача решается через паросочетание на двудольном графе.

    Покрасьте поле как шахматную доску. Черные и белые клетки. Каждая доминошка будет лежать на двух соседних белой и черной клетках. Постройте граф. Назначьте каждой клетке вершину, а ребра проведите между соседними клетками, если там нет перегородки. Граф - двудольный, ведь черные клетки окружены белыми, а белые - черными. Любое заполнение поля доминошками будет идентично паросочетанию в этом графе и наоборт. Найдите максимальное паросочетание: если оно не полное, то поле покрыть нельзя. Иначе ребра в паросочетании будут местами, куда надо класть доминошки.

    Вот статья с описанием алгоритма и реализацией.

    Это будет решение за O(n^2m^2).

    Другое решение, которое будет быстрее, если одно из измерений очень маленькое, а второе очень большое - динамическое программирование по профилю. Гуглите эти слова. Это сложнее реализовать, но зато будет работать за O(4^n m)

    Edit:
    Alexandroppolus в коментариях предложил использовать Алгоритм Хопкрофта — Карпа для поиска паросочетания, что для данного графа будет быстрее предложенного мной алгоритма Куна и будет работать за O(nm sqrt(nm)) вместо O(n^2 m^2)
    Ответ написан
    7 комментариев
  • Как правильно выделить память для двумерного массива большого размера?

    Правильно будет использовать std::vector, например так
    std::vector<int> v(N*M);
    Но стоит учитывать, что для большого числа данных памяти может не хватить.
    Ответ написан
    5 комментариев
  • Требования к самописной CRM?

    Jeer
    @Jeer
    уверенный пользователь
    Аж жуть берет от таких заданий ) Покупка готового инструмента обычно дешевле, чем разработка с нуля. Особенно если разработка осуществляется одним человеком. Особенно если опыта мало. Особенно, если на поддержке будет тот же человек, что и на разработке ) безумие :) проект полетит в помойку, но у вас будет строчка в резюме по созданию проекта, можете обкатывать любые технологии за счет глупого работодателя.

    По делу без брюзжания:
    Писать под винду моветон - лицензии дорогие
    Вин формс зачем? - делайте веб апи с фронтом на вью/реакте/ангуляре. Нужна кроссплатформенность, чтобы хоть с телефона можно было зайти и нажать нужную кнопку в системе.
    Апи нужно, потому что будет много интеграций с другими системами, загрузка/выгрузка в 1с, не дай бог будете телефонию подключать
    Внутренняя сеть решается с помощью впн сервера.
    Помимо функциональных требований существуют еще технические, должен быть мониторинг, вы должны всегда знать сколько ресурсов потребляет ваш сервер, сколько данных занимает на дисках, логи и трейсы - гуглится по слову Observability, обычно не закладывается в смету, но к этим вопросам приходят рано или поздно
    Что еще, ну, по функционалу тут проще, открываете презентации в популярных CRMках, смотрите, что они могут, выписываете списком и идете к заказчику, чтобы он указал галочками, что будете делать, что не будете
    потом прикидываете по трудозатратам и озвучиваете сроки из которых можно понять примерную стоимость проекта. Часто одно маленькое предложение, типа того же "выгрузить данные в 1с" грозит несколькими десяткми часов работы, потому что другой отдел, с ними нужно договориться и сделать интеграцию. Или "должен быть отчет такой-то", а там как начнешь разбираться, еще 5 раз посовещаться сначала надо ))
    Ответ написан
    Комментировать
  • Как разграничить хранение данных пользователей?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Каждый имеет свой набор полей. Клиника, например, имеет адрес и дату основания.
    Мне кажется вы как-то не так пользователей определяете, клиника как пользователь не кажется логичным утверждением. Пользователь - сущность имеющая общие атрибуты - логин, пароль, опционально дату регистрации и еще несколько признаков присущим людям/иным разумным. В частности, логинится не здание фирмы и не юридичкское лицо в виде учредительных документов, а конкретный Федор Пупкин из клиники "Веселая челюсть". И связь Федора с клиникой через один ко многим (либо многие ко многим, в зависимости от сложности возможных пересечений) видится более адекватной структурой, как минимум по тому что не только Федор может управлять действиями от лица клиники, а еще например бухгалтер Василиса Андреевна. Проблема в том что у вас юзерами стали объекты, по дефолту к ним не относящиеся. Как только вы отделите мух от котлет, все встанет на свои места, в том числе через роли, так как к клиникам будут иметь доступ только роли работников клиники.
    Ответ написан
    1 комментарий
  • Как открыть сайт находящийся в ВМ из хостовой машины?

    LikeMySoul
    @LikeMySoul
    Сис. Админ
    Ок, исходя из того что это виртуалбокс и ip он получает видимо из своей отдельной NAT подсетки. Варианта реализации 2:
    Первый пробросить еще один интерфейс как бридж и разрешить ему форвардить пакеты из сети 10.0.2.0 в вашу подсеть, после чего прописать маршруты на обеих(двоих?) сторонах и пробовать снова.
    Второй просто удалить стандартный NAT интерфейс в virtualbox и добавить вместо него bridge чтоб ловил адрес в вашей сети. После чего перенастроить nginx и апач на новый ip полученый из вашей сети.
    Есть третий, но это еще больший костыль чем первый вариант: поднять впн и пушить вашу машину по нему.
    Ответ написан
    1 комментарий
  • Как понять что делает данный код php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Гадость.
    Тут даже смотреть не надо чтобы понять, что код делает гадость

    код ниже после __halt_compiler(); никак не интерпретируется языком PHP, что явно следует из названия этой функции.
    Ответ написан
    1 комментарий
  • Какие видеоуроки/книги/советы посоветуете начинающему программисту?

    hint000
    @hint000
    у админа три руки
    какие-нибудь своеобразные, но полезные советы

    1. Любой конкретный язык программирования - фигня (хотя без него никак), а важнее алгоритмы и структуры данных.
    2. Когда размер ваших програм перевалил за десяток строк, пора осваивать методы отладки (debug). Это 99% практики и 1% теории. Практически невозможно (даже для гения) сразу без ошибок написать программу на тысячу строк. И будут моменты, когда вы готовы биться головой о стену, потому что уже десять раз всё проверили, и весь код правильный, но всё равно выдаёт неправильный результат; и приходят мысли, что это какой-то неизвестный глюк в операционной системе и т.п. Вот это будет ваш личный момент истины. Это будет означать, что нехватает опыта в отладке. Выловить ошибки в программе на тысячу строк (в своей) не слишком просто, но вполне по силам студенту.
    Ответ написан
  • Какие видеоуроки/книги/советы посоветуете начинающему программисту?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    допустим человек, который впервые решил заняться боевыми искусствами пишет вопрос

    "я только начал, еще ничего не умею. Посоветуйте те, кто уже профи, какие-нить полезные фичи, типа как именно шпагат поможет нанести более удачный удар.
    Я правда на шпагат может через год только сяду, если не заброшу, но совет нужен уже сейчас.
    Потом как вы так круто высоко прыгаете, я еще только 10 приседаю, и уже одышка. но хочу узнать какой у вас секрет такой"

    Просто изучай базу
    Делай простые приложения.
    До того, как писать код на 1000 строк, пиши на 100.
    Разберись с тем, как происходит компиляция.
    Почитай про name convention
    почитай про git
    задавай конкретные вопросы, приводя кусок кода, в котором у тебя что-то не выходит.
    Общих вопросов в интернете полным полно и пользы они никому особой не приносят
    Ответ написан
  • Визуализация ЭЦП в PDF и документах Word?

    hint000
    @hint000
    у админа три руки
    Таким образом вы убиваете смысл ЭЦП.
    Идея ЭЦП в том, что ЭЦП позволяет убедиться (в частности), что документ не был изменён после подписания. Если в документе изменить хоть один байт, то проверка подписи покажет, что подпись недействительна.
    Теперь посмотрим, как вы хотите сделать.
    У вас есть документ. Вы его подписываете. Потом вы добавляете в документ "визуализацию ЭЦП", тем самым изменяя документ и делая подпись недействительной.
    Ответ написан
  • Как можно создать дистрибутив Linux на основе Debian?

    @rPman
    полагаю ты не понимаешь что такое создать дистрибутив linux.

    Дистрибутив это не только набор пакетов но и инфраструктура, обслуживание репозитариев, интегрирование обновлений и т.п. Еще есть юридические моменты, так как в мире linux 'благодаря' производителям железа все полностью открытым быть не может (но да debian старается) то нужно еще следить, чтобы ни чьи интересы не задел, добавляя какой то пакет у себя (например были споры по названию браузера firefox, так как пакетом хотел рулить debian, называть его таковым он не имел права, пришлось переименовать в iceweasel)
    Ответ написан
    Комментировать
  • На какой cms начать верстать магазин лучше всего?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Можно разобрать на цитаты из интернетов.... Да и опыта у тебя нет - признавайся, в лучшем случае правки делал какие исходя из текста.

    Joomla мертва и никому не нужна.

    Wordpress это более 60% рынка CMS и 30% от всех сайтов на планете. Выбор очевиден. Про костыли выброси эти фразы в мусорку и никому не говори. У него есть свои минусы но к тому времени когда ты их осознаешь уже будет понимание что с этим делать. И если будешь отталкивать от того как малыми силами сделать сайт на плагинах останешься без работы и без денег. Вордпрес это максимальный профит за короткий срок а если не умеешь готовить то это уже другой вопрос.

    Для начала разберись с пониманием что такое "верстать" и что это не связано с CMS. Разделяй процессы. Сначала верстать потом натягивать.
    Ответ написан
    4 комментария
  • Самопроизвольное объявление define'ов в проекта?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Получается, магическим образом, самопроизвольно, между включениями VulkanTexture.h и VulkanglTFModel.h был объявлен define.

    А на самом деле где этот define определяется и как это место относится ко всем этим заголовочным файлам?

    Разве препроцессор не последователен и может включать файлы в том порядке, в каком ему заблагорассудится, а не как я написал?

    Нет, не может, но возможно ты не вполне понимаешь сам, в каком порядке ты написал их подключение. Так, например, Helpers/VulkanTexture.h и VulkanTexture.h -- это один и тот же файл, или разные? Если один и тот же, то из-за #pragma once в нём он не подключается в VulkanglTFModel.h, а если разные -- то подключается.

    Понять, что фактичиски куда подключается можно выполнив вместо шага компиляции только препроцессирование (например, для gcc заменив в команде компиляции ключ -c на -E). В выводе препроцессора не видно дефайнов, но видно когда подключается тот или иной файл и видно весь исходный код не относящийся к препроцессору.
    Ответ написан
    Комментировать
  • Имею базу в формате txt размером 2gb, как отсортировать по количеству символов на строку?

    @rPman
    Для таких операций уже несколько десятилетий в linux существует утилита awk со своим языком программирования (он достаточно простой хоть и странный), так же можно соорудить регулярное выражение и с помощью утилиты sed или grep, несколькими проходами пройти по файлу, и сначала вывести все короткие строки, вторым проходом все длинные.

    так же можно написать приложение на любом языке программирования, построчно читать файл, измерять длину строки или какое тебе нужно условие и записывать в нужный файл, кода строк на 5-6
    Ответ написан
    Комментировать
  • Как реализовать рекурсию в UML (диаграммы классов)?

    Vindicar
    @Vindicar
    RTFM!
    Особенно никак? Диаграмма классов не описывает содержимое методов, а приведённый код бессмысленен даже как пример.
    Можно, конечно, сделать отношение зависимости от Foo к нему же, но будет затруднительно пояснить его природу.
    Ответ написан
    Комментировать
  • Правильно ли написано уравнение на c++?

    Разделителем целой и дробной части должен быть символ "точка" (.)
    Ответ написан
    8 комментариев
  • Как записать в JSON число только с ДВУМЯ цифрами после точки?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Вам программа подсказывает что вы неверно работаете с сущностью "бабло".
    Бабло должно быть строкой или интом.
    Вы делаете из него флоат и получаете ровно то, с чем борятся говоря "бабло должно быть строкой".

    1) Функции связанные с деньгами это отдельный класс в приложении который использует для их расчета функции bcmath, умеющие считывать произвольное число знаков до и после запятой и считать число не взирая на разряд.

    2) Для работы с деньгами используют библиотеку phpmoney где большая часть нужных вам вещей уже завернута, есть парсер и форматтер, поддерживаются валюты и с гемором но можно даже создавать свои. К сожалению, парсинг валют с сайта банков вы скорее всего будете писать сами, т.к. предложенный вариант парсит их из какого-то источника, который не учитывает ситуацию в вашей стране, но сама поддержка переводов валюта-валюта есть.

    3) Для работы с деньгами дописывают функции "округление в большую сторону и округление в меньшую сторону с учетом копейки в последнем разряде", их в пхп нет, они считаются "не математическими", как и вся экономика основаны на "кто кому чего должен" а не "сколько будет". Так округление 1.0005 до двух знаков равно 1.00, тогда как экономика считает что 1.01. И тут тоже два пути. Если вы выставляете клиенту цену, то это 1.01 (копейку содрать с клиента), а если клиент пополняет баланс, то это округление в меньшую сторону - на баланс зачисляется 1.00 (снова содрать копейку). Экономика очень подлая хрень. Она экономит всё. Но не за счет себя, а за счет того, кто платит. И вы еще спрашиваете почему "бизнес это благо", потому что те кто им занимаются грабят остальных средь бела дня (если даже в программировании вопрос копейки, то что в маркетинге - я боюсь даже представить, цена из воздуха, хайп и лексусы) и никто еще и доказать этого не может. Везде бумага "сам согласился и подписал".

    4) Для работы с баблом также вводят собственную валюту (желательно), т.к. остальные скачут как хотят, а ваша цена на сайте остается прежней, но при этом в самих валютах имеет разное выражение. Помните, да, "Игровое золото"? Это не просто "прикольно". Это юридически и экономически необходимо. Вам. Ведь если компания теряет деньги, то внезапно оказывается, что сам директор кроме бумаг ничего не выдает в мир. А вот из-за вас, программистов, у него из кармана утекает. Замалчивая факт "откуда приходит" очень весело обвинять всех, что "из-за них - уходит".

    Как и в экономике. Кто делает - тот платит. Кто не делает - тот выигрывает. В общем - мобилизация не случайность. Медитируйте. Желательно с книгой Ленина.
    Ответ написан
    24 комментария