• Какими инструментами Вы пользуетесь в процессе решения?

    Adamos
    @Adamos
    Анализ. Записываете задачу с теми подробностями, которые вам очевидны, потом начинаете разбирать ее на куски, минимально друг от друга зависящие, и прорабатываете их подробности, оглядываясь на общий план, чтобы они ему не противоречили.
    Записывание омогает как убедиться, что задача охвачена полностью, так и вспомнить, что ты там намозгоштурмил, спустя несколько дней.
    Общие принципы решения те же, что у идеального кода - разобрать задачу так, чтобы уменьшить ее связность и не пытаться держать в голове все сразу, изолируя текущие задания от тех подробностей проекта, которые ее не касаются.
    Ответ написан
    Комментировать
  • Как обеспечить отказоустойчивость БД Postgres?

    Melkij
    @Melkij
    PostgreSQL DBA
    как правильно обеспечить надежность и безотказность ее работы?

    Использовать адекватное железо и не мешать базе работать шаловливыми ручками.

    доступен 24 часа 7 дней в неделю.

    бекап

    Объясните, пожалуйста, как это по вашему мнению между собой связано?
    Бекапы необходимы, но как они связаны с высокой доступностью?

    в случае проблем с доступностью, перезапускать/запускать саму СУБД.

    Простой вопрос: зачем?
    Если база сложилась и даже не смогла подняться самостоятельно - значит проблема капительная и разбираться надо детально. Рестартом по кругу вы можете скорее сделать совсем плохо, чем что-либо починить.
    При том обычно проблемы начинаются от того что разработчики выкатили новую версию приложения и та начинает делать что-то странное. Например, забыли сделать индекс на 50гб табличку и засунули запрос с поиском по ней на главную сайта. Рестартом базы это, разумеется, не исправляется. А делает только больнее.

    Многолетней давности pg_postmaster_start_time() впечатлять не буду - мы периодически ставим минорные апдейты на свои базы. И вам тоже весьма рекомендую обновиться до 10.7 или лучше уже на следующих выходных сразу до 10.8.

    А так, если не трогать - то годами будет работать. Мониторинг и алерты от него, разумеется, нужны. Какая-то автоматика при наступлении алерта - обычно приносит куда больше головной боли, чем помогает.

    какие операции, запросы или их комбинации нежелательны для БД и могут привести к проблемам.

    Большая часть инцидентов с недоступностью сервиса с точки зрения приложения - про уровни блокировок. Кто-нибудь попробует сделать create index вместо create index concurrently и привет ожидание блокировки на всю запись в таблицу. Большинство форм alter table сюда же, но они и чтение заблокируют.
    Ответ написан
    Комментировать
  • Как сделать автоматический перезапуск службы очереди печати?

    Zoominger
    @Zoominger
    System Integrator
    Лучше тогда не при нагрузке, а регулярно - раз в 20 минут, например. В Планировщик закиньте команду перезапуска и всё.
    Ответ написан
    Комментировать
  • Исключение. Что это значит?

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как это "длина числа в битах", что нужно делать чтобы ее определить.

    Это количество бит необходимых для записи числа.
    Нужно взять следующее бОльшее целое число после логарифма числа по основанию 2. Т.е. 1 -- 1 бит, 2 -- 2 бита, 3 -- 2 бита, 4 -- 3 бита... 1023 -- 10 битов, 1024 -- 11 битов... 179,769,313,486,231,590,772,930,...,304,835,356,329,624,224,137,215 (309 цифр) -- 1024 бита, 179,769,313,486,231,590,772,930,...,304,835,356,329,624,224,137,216 -- 1025 битов...
    Ответ написан
    2 комментария
  • Как передать переменные между программами без обращения к диску?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    с одной стороны вариантов много, с другой стороны
    велосипед не нужно изобретать


    1 - Excel, как и все программы MS Office, имеет развитую инфраструктуру OLE Automatin, в том числе доступную практически из всех основных скриптовых инструментов. пример запроса https://duckduckgo.com/?q=AutoIt+OLE+Automatin&t=f...

    2 - если запускаете внешний скрипт из самого Excel, вспомните, что всегда можно передать какие то входные параметры. допустим сообщить скрипту путь к книге, имя листа, адрес ячейки/диапазона и тд. потом из скрипта использовать OLE Automatin к этой книге/листу и тд. пример запроса https://duckduckgo.com/?q=AutoIt+%D0%B2%D1%85%D0%B...

    ps при необходимости, просто замените в запросах AutoIt на VBS, BAT, WSH, PowerShell, C#, VisualBasic и так далее

    pps
    Когда писал свой вопрос, думал об аналоге scripting.dictionary с возможностью обращения из другой программы: в процессах висит словарь, одна программа в него пишет, другая - читает. И казалось, что доработка API к существующему словарю - плевое дело.
    Excel книга в роли "словаря" (или InMemoryDB) с доступом по OLE - самый простой в освоении вариант

    есть и много других. но придется учиться программировать. самая популярная легковесная БД - SQLite. кстати, имеет режим InMemory

    какие проблемы? творите! ))
    - https://duckduckgo.com/?q=AutiIt+SLQlite&t=ffab&ia=web
    - https://duckduckgo.com/?q=Excel+SLQlite&t=ffab&ia=web
    Ответ написан
  • Как исправить ошибку при компиляции .cpp файла через терминал linux ROSA?

    Radjah
    @Radjah
    Цитирую второй результат в гугле по тексту ошибки:
    Так как cout присутствует в стандартной библиотеке С++, для которой gcc требуется явное связывание с -lstdc++; g++ по умолчанию связывает стандартную библиотеку.

    gcc vector.cpp -lstdc++ -o vector.o


    Первый про это же, но на английском.
    Ответ написан
    Комментировать
  • Как подключиться на FTP с общего NAT IP адреса провайдера?

    martin74ua
    @martin74ua Куратор тега Компьютерные сети
    Linux administrator
    Попробуйте включить passive mode в настройках ftp клиента.

    Ну или используйте sftp\scp, если у вас есть шелл на хостинг
    Ответ написан
    Комментировать
  • Вылет при удалении динамического массива?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    char *s = new char[strlen(source) + 1];
    ...
    strcpy_s(s, strlen(s), source);


    strlen(s) -- вообще за гранью добра и зла и возвращает случайное число, по большому счёту. Потому что s -- только что выделенный неинициализированный массив.

    Вызов strcpy_s совершенно бессмысленный и неправильный. Бессмысленный, потому что ты только что выделил столько памяти, сколько данных в строке. strcpy_s имеет смысл, если буфер в который ты копируешь -- это массив фиксированной длины. Неправильный, потому что даже если ты имел в виду strlen(source), а не strlen(s), то должен был передать strlen(source) + 1, чтобы было куда 0-терминатор скопировать. Кроме всего прочего, strcpy_s ещё и возвращает код ошибки, который имеет смысл проверить.

    Лучше всего в этом месте было бы вызвать memcpy(s, source, strlen(source) + 1); или вообще выкинуть s = new char [...]; strcpy_s ... delete [] s; и заменить на s = strdup(source); ... free(s);
    Если очень хочется strcpy_s, то хотя бы так: strcpy_s(s, strlen(source) + 1, source);

    Исправление этого места починит и delete, потому что delete валится из-за того, что ты поломал heap.
    Ответ написан
    1 комментарий
  • В чем смысл быть гуру тостера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Работа над личным брендом: Высокая репутация в профессиональных сообществах повышает привлекательность для нанимателей.
    2. Улучшение существующих знаний: Хочешь что-то понять, объясни другому.
    3. Приобретение новых знаний: Специализация замыкает в узком спектре задач и проблем, а Q&A-сервисы - это источник задач и проблем из самых разных областей и иногда под самыми неожиданными углами.
    4. Альтруизм: Большинству из нас кто-то помогал в начале пути, пришло время возвращать долг и делать свой скромный вклад в рост кадров.

    Ещё бывают поклонники какой-то технологии, которые делают вклад в её развитие, продвижение и популяризацию, помогая другим с ней разобраться. Но лично я за это пока не брался, хотя мысли есть.

    Для чего просиживаете на тостере по 5-6 часов в день?

    Я в среднем раз в полчаса-час заглядываю. Если находится интересный вопрос, могу потратить на него минут 10. Некоторые на перекуры больше времени тратят.
    Ответ написан
    7 комментариев
  • Стоит ли заморачиватся с тонкими клиетами?

    fzfx
    @fzfx
    18,5 дм
    autocad через терминал - гиблое дело; специфическое ПО - сначала надо проверять, как работать будет; office - без проблем; win10 - никак нет, сервер терминалов - это windows server, а не десятка.
    Ответ написан
    5 комментариев
  • Стоит ли заморачиватся с тонкими клиетами?

    @lossyy
    Тонкие клиенты для оперторов 1с, менеджеров продаж и прочих. А разработчикам-конструкторщикам - рабочие станции надо.
    Ответ написан
    Комментировать
  • Как загрузить большую БД 23гб?

    @grinat
    Может файловая система не принимает файл такого размера, попробуй на куски разбить и там распаковать, либо логи глянь, должна причина ошибки.
    FAT32 - 4Gib
    NTFS - 16Eib
    ext2/3 - 16Gib - 2Tib (depends from block size)
    ext4 - 16Gib - 16Tib
    XFS - 9Eib
    ZFS - 16Eib
    Ответ написан
    Комментировать
  • Проблемка в коде, что добавить/исправить?

    Zoominger
    @Zoominger
    System Integrator
    Попробуйте вместо
    scanf("%f\n", &fahr);
    вот так:
    scanf("%f", &fahr);
    Ответ написан
    2 комментария
  • Как использовать символические ссылки в проекте под гитом?

    @pfg21
    ex-турист
    гит знает что такое симлинки и обходит их стороной :)
    или сделай для каждого файла хардлинк.
    или монтируй каталог через mount bind, такое подключение гит должон проглотить.
    Ответ написан
    1 комментарий
  • Как работать командой над большим проектом?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    1. Договор - полюбому. Чтобы можно было прижучить.
    В нормальных команиях также секьюрити проводят регулярные таунхолы, особенно для новичков, где рассказывают о безопасности. И приводят пару примеров, как кто-то расшарил кусочек кода, как его засудили на много денег и добавили в черные списки всех компаний.
    Это для тех, кто по глупости может.

    2. Делите исходники на части. Автоматизируйте деплой так, чтобы разработчик это руками не делал и никуда не лазил - сделал коммит - CI сервер автоматом закачал все нужное из разных репозиториев и задеплоил. Надо нескольким разработчикам - сделайте несколько тестовых окружений, чтобы разработчик мог зайти в Jenkins или Teamcity, нажал одну кнопку и выбрал куда ему деплоить. Но своих логинов парлей у него не было.

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

    И это все равно не гарантия. Смиритесь =)
    Ответ написан
    1 комментарий
  • Как правильно посчитать координаты точки?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Решение в лоб. Вам нужно сначала получить уравнение прямой на плоскости, а потом проекцию точки на прямую на плоскости. Можете начинать гуглить. Это легко. Оба момента имеют конкретные известные формулы.
    Ответ написан
    Комментировать
  • Как присвоить постоянный id rdp-сессии?

    idShura
    @idShura
    Зачем присваивать постоянный id? Можно с помощью команды QUSER узнать нужный id, а затем выполнить logoff нужного пользователя.
    Ответ написан
    5 комментариев
  • Есть ли известный алгоритм, который разбирает выражения на сложных языках типа JS и C?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Польская нотация учитывает всё, что угодно. В смысле, что напишешь, то и будет.
    унарные операторы? Делай две операции - UNARY_MINUS, MINUS. 1 1 UNARY_MINUS MINUS == 2
    Сложные операторы? A B C TERNARY (не лениво? ну можно и лениво сделать)
    Функции? a b c d 4 max call. Здесь a, b, c, d, 4, max - аргументы, они все ложатся в стек. Интерпретатор видит call, достает из стека функцию (max), понимает, что это функция с переменным числом аргументов, достает это число (4), достает остальные аргументы по количеству, вызывает функцию max(a b c d).
    В Полизе могут быть инструкции, управляющие потоком выполнения 1234 JUMP - переводит курсор на адрес 1234.
    Всё зависит от твоей извращенности, короче.
    Чтобы не быть голословным, вот мой пет-проект, там вычисление как раз на Полизе реализовано.

    У польской нотации есть минусы - сложно анализировать программу, вычислять типы. Сложно оптимизировать. Для этого лучше подходят AST.
    Ответ написан
    Комментировать