Задать вопрос
  • На что следует обратить внимание при подборе коммутатора?

    sizaik
    @sizaik
    сисадмин, Витебск
    Обратить внимание нужно на функционал.
    Но если вы ставите задачу таким образом - у вас расплывчатое представление о том, что могут и как используются свитчи. В этом случае для защиты инвестиций я бы посоветовал купить что-нибудь из цисковской серии для малого бизнеса. Функционал у них широкий, а понимание, как его использовать, придет позже.
    Например Cisco SG500X-24 и SG500X-48. Они удовлетворяют всем вашим требованиям, но вылезут за рамки бюджета тысяч на 50.
    Я бы хорошенько подумал вот над чем:
    - реально ли всем пользователям нужен гигабит? и офис-менеджеру? и бухгалтеру? зачем? Не лучше ли взять один свитч Fast Ethernet для большинства пользователей и один Gigabit Ethernet для тех, кому действительно нужен гигабитный канал?
    - так ли вам нужен 10Гбит канал до сервера? Я с трудом представляю приложения для малого бизнеса, где это нужно. Если одного гигабита однозначно мало - есть сетевые карты с несколькими портами и статическая агрегация каналов. Прикиньте, это может выйти значительно дешевле.
    Ответ написан
    1 комментарий
  • Организация базы данных футбольных матчей, с учетом составов и ведением статистики по игрокам. Правильно ли делать на JSON + noSQL?

    sim3x
    @sim3x
    Если ты готов сам отвечать за консистентность данных, вручную считать всю статистику, следить за исправлениями во всех местах, готов писать сотни велосипедов на простейшие задачи и делать другие не очень интересные вещи, то твой выбор noSQL
    Ответ написан
    4 комментария
  • Одинаковые куски кода в разных классах допустимо или нубство?

    @dude2012
    Дело даже не нубстве. А в практической составляющей. Лучше один код исправить, чем два. Но на самом деле это не так страшно, как забыть исправить второй код, если исправил первый.. Поэтому, чем меньше исправлений, тем лучше - меньше головной боли, меньше потенциальных ошибок. Грабли могут сильно ударить по голове, не в этот раз, так в следующий. Лучше иметь хорошие привычки.
    Рекомендую "Рефакторинг" Мартина Фаулера почитать, там много примеров на эту тему.
    Как раз убрать дубли - это рефакторинг.
    Ответ написан
    1 комментарий
  • Возможно ли применить такое условие?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    if (arr[0] == arr[1] == arr[2])

    Результат выполнения операции == в С++ -- это bool, а bool конвертируется в int.
    Запись в скобках эквивалентна (a[0] == a[1]) == a[2] и сравнивает a[2] с результатом сравнения a[0] и a[1] (0 если они не равны, 1 если равны). Т.е. 1 == 1 == 1 -- это истина, поскольку (1 == 1) -- истина, истина сконвертированная в int -- это 1, а 1 == 1 -- это истина.

    почему сравнение значений массива по индексу работает не так, как с обычными переменными

    Точно так же оно работает.

    как мне добиться нужного результата?

    if (arr[0] == arr[1] && arr[1] == arr[2])
    Ответ написан
    Комментировать
  • Как узнать что точка попадает на диагональную линию?

    @gleb-mihalkov
    Если у вас есть две точки линии, то можно сделать так:

    function getLineFn(x1, y1, x2, y2) {
      
      var k = (y2 - y1) / (x2 - x1);
      var b = y1 - k * x1;
    
      return function(x, y) {
        var f = x * k + b;
        var d = Math.abs(y - f);
        return d < 0.00001;
      }
    }
    
    var x1 = 10
    var y1 = 10
    var x2 = 500
    var y2 = 400
    
    var isOnLine = getLineFn(x1, y1, x2, y2);
    var test = isOnLine(100, 200);
    console.log(test);
    Ответ написан
    3 комментария
  • Как сделать выборку из БД делая объединение с разными таблицами в зависимости от значения поля?

    k1lex
    @k1lex
    Программист торг. сети. C# (WPF, WinForms), T-SQL
    Я думаю суть будет понятна - соединяем таблицы left join-ом и если значение в первом случае NULL то берем другое значение. Если типов сообщений будет больше чем 2, используйте оператор coalesce

    select 
    [ id пользователя]
     ISNULL(U.ID, system.id] as [ID сообщения]
     from tbl_notice  N
    left join user  U ON  U.ID=N.[id сообщения] and type="user"
    left join Systems  S ON  S.ID=N.[id сообщения] and type="System"


    P.S. Поздно увидел что вопрос для MYSQL, но для MS SQL работать будет точно.
    Ответ написан
    Комментировать
  • Теория алгоритмов. С чего начать и какой язык выбрать?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Теория алгоритмов работает и вовсе с абстрактными машинами Поста и Тьюринга, ЯП для нее не нужен.

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

    Языки, близкие к железу, вроде C и С++ наоборот, позволяют реализовывать алгоритмы, максимально задействуя аппаратные возможности платформы. Такой программист менее эффективен (выдает меньше реализованных задач в единицу времени), зато его код эффективен, и может задействовать все возможности железа.

    Написание кода на C и C++ предъявляет больше требований к программисту и качеству его работы, заставляет учитывать больше мелочей и больше дисциплинирует. В этом смысле, такие языки лучше подходят в качестве учебных.
    Ответ написан
    Комментировать
  • Как сделать скриншот окна ввода пароля в Windows 7?

    RusTech
    @RusTech
    Скриньте фуллскрин виртуальной машины или приглашение RDP
    Ответ написан
    Комментировать
  • Цикл с таймаутом ровно в 1 секунду?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Ваш вопрос можно приводить в качестве наглядного пособия на тему "Как именно вылазит боком кривая архитектура системы" :) Основная проблема в том, что интеграция компонент через storage есть зло, рано или поздно (чаще - рано) заставляющее разработчика выполнять стойку на ушах. Так что, если есть такая возможность, постарайтесь устранить зло в корне, т.е. найти способ узнавать об изменениях, ну, или хотя бы о самом факте, до того, а не после. Тогда не придется ничего опрашивать в цикле, а только реагировать на изменения. А это уже - половина проблемы!

    Если возможности нет, а делать все равно надо, сначала смитритесь с тем, что Вы никогда на PHP не добьетесь ровненько 86400 вызовов в сутки каждую секунду, если только не поставите ядро реального времени / не напишете соответствующий код на С и т.д. и т.п. Особенно, если storage крутится на том же процессоре в той же ОС, и количесво данных в нем будет со временем увеличиваться. Но это почти наверняка и не нужно, а нужно проанализировать задачу и понять, что на самом деле критично и какие отклонения от идеала возможны без ущерба для функциональности.

    "Примерно 0.03с" само по себе еще не о чем не говорит. Это всегда или в случае, если изменений нет, или если они небольшого объема? А если 90% данных обновились? Это - раз. Два: если изменения обнаружены, сколько может занять их обработка (в худшем случае)?.. И, наконец, три: если уже наступила "следующая секунда", а мы все еще не закончили обработку прошлых изменений, возникает целый ряд вопросов. Имеет ли в этом случае вообще смысл проверять новые изменения (сможем ли мы их осмысленно обработать, если найдем)? Если да, понадобится как минимум 2 потока. Если нет, насколько критично пропустить эту секунду? А сколько еще можно пропустить без ущерба для функционала? Предположим, это не критично, и мы уже пропустили секунду (или несколько), что нам важнее: чтоб следующая проверка выполнилась как можно ближе к границе "следующей секунды", или как можно быстрее? И т.д. и т.п.

    Не зная ответов на эти и подобные вопросы, невозможно предложить "правильное" решение. Но в качестве сферического коня в вакууме можно посоветовать бесконечный цикл, в котором выполняется проверка, реакция на найденные изменения, после чего вычисляется время до следующей проверки, на которое выполняется sleep().
    Ответ написан
    Комментировать
  • Почему при перенаправлении в файл вывод обрезан?

    BuriK666
    @BuriK666
    Компьютерный псих
    Может у вас что-то идет в stderr?
    > file 2>&1
    Ответ написан
    2 комментария
  • Не стартует cron на FreeBSD 10.1. Что делать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    А если запустить с отладочной информацией но без отладчика -- падает?
    В этой вашей BSD есть core-дампы? Если есть -- пусть сгенерирует, загрузите его в gdb и посмотрите.
    Ответ написан
    6 комментариев
  • Указатели на память в стеке?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Итак. В присваивании у нас участвует "string" - это константа. Она отправляется компилятором в область данных программы - это зависит от платформы, куда конкретно. Так что на стеке оказывается сам указатель cStr, который указывает куда-то, куда компилятор засунул ваши буковки.

    По второму вопросу (какого черта вы засунули два вопроса в один?) - компилятор - не дурак, он взял два одинаковых набора символов "str", понял, что они одинаковые, и не стал плодить дубляки - в a и b попадает один указатель, потому как компилятор не стал сохранять в программе две идентичные строки.
    Ответ написан
    7 комментариев
  • Как отключить установку служб без уведомления?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Запретите пользователю установку программ в политиках безопасности.
    Собственно для пользователей она и так отключена, только администратором разрешено ставить.
    Ответ написан
    Комментировать
  • Суть виртуальной машины Java?

    ruFelix
    @ruFelix
    Предсказание будущего по руке, таро, кофе.
    Ну смотрите процессор компьютера понимает опкоды, для разных процессоров свои опкоды, x86 , AMD64, ARM и т.д.

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

    Интерпретируемые языки поступают иначе, они имеют в своём составе интерпретатор, который транслирует код программы в опкоды процессора. Соответственно реализовав один раз интерпретатор по разные платформы мы получаем кроссплатформенный язык.

    Виртуальня машина java это тоже интерпретатор по сути, но ему на вход идёт не сама java программа, а её трансформированный вариант, т.е. уже проверенный и более удобный для VM.

    Да вы всё правильно поняли, без JVM программа на java не запуститься не где. Замечу что например в симкарте вашего телефона есть процессор на котором запущена JVM и софт который на ней исполняется, это я к тому, что кроссплатформенность у java действительно широка.
    Ответ написан
    Комментировать
  • Какое программное обеспечение использовать чтобы нарисовать схему подключения?

    sm1ly
    @sm1ly
    beardman
    dia-installer.de
    кросплатформенно
    Ответ написан
    Комментировать
  • Как стать программистом в банке?

    sim3x
    @sim3x
    У тебя неправильное мнение про банки и программеров в них - ты не будешь писать софт - ты будешь хелпдеском-прокладкой между пользователем и аутсорсером, который на самом деле пишет софт

    Есть исключения, но они также выделяют разработку в отдельный бизнесс

    ПС в банках не платят больше
    Ответ написан
    Комментировать
  • Почему не устанавливается ни одна Windows на нетбук?

    Frankenstine
    @Frankenstine
    Сисадмин
    Возможно память битая.
    Memtest86 в помощь.
    Ответ написан
    4 комментария
  • Чему перед ЕГЭ учиться?

    @huk6639
    Русскому языку, математике и двум предметам на выбор. На данном этапе только их
    Ответ написан
    Комментировать
  • Чему перед ЕГЭ учиться?

    sabramovskikh
    @sabramovskikh
    Ничего не пробуй. Сдавай ЕГЭ, поступай в ВУЗ на прогера, там то ты и будешь учить что скажут)
    Ответ написан
    Комментировать