• Актуальные книги по C#?

    kmx
    @kmx
    Герберт Шилдт - C# 4.0. Полное руководство
    Ответ написан
    2 комментария
  • А есть софт для форматирования диска при вводе неправильного пароля?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А смысл? Если диск зашифрован, то без правильного пароля или резервного ключа его всё равно не прочитать. А если не зашифрован, то просто подключаем его к другому компьютеру и сливаем всё не вводя никаких паролей.
    Ответ написан
    6 комментариев
  • Книга по введению данных в базе данных, создание структуру данных, есть ли такая книга?

    @dmshar
    "Книга по введению данных в базе данных" - что то тут падежи как-то не совпадают. То-ли "по введению данных в базу данных", то-ли по ""по введению в базы данных", то-ли по " по ведению данных в базе данных" . Это как бы все разные вопросы.
    Но судя по всему, вы вообще ничего не читали по базам данных. И даже не дали себе труда хоть один запрос в Гуугл сделать. Сильно советую именно с этого и начать, а книг, информации в интернет, видеороликов на эту тему - миллионы (реально).
    Но, если вы этого не умеете, или вдруг у вас доступа к Гууглу почему-то нет, то вот, ввел в поисковую строку "введение в базы данных введение" и пожалуйте, подряд:
    www.codenet.ru/progr/vbasic/vb_db/1.php
    https://stepik.org/course/551/
    www.sql.ru/articles/mssql/2006/031701iintroduction...
    www.mstu.edu.ru/study/materials/zelenkov/toc.html
    https://www.ozon.ru/context/detail/id/136880774/
    http://www.its.kpi.ua/subjects/21/Documents/Лекції...
    www.ict.edu.ru/ft/006173/itmo461.pdf
    https://www.ozon.ru/context/detail/id/139953550/
    lab314.brsu.by/roleg/BD_TiG/theory/access01.htm
    Смотрите, изучайте. За вас вашу "кашу в голове" не сварит никто.
    Ответ написан
    Комментировать
  • Почему в консоли не отображается ноль при значении переменной double менее 1?

    FoggyFinder
    @FoggyFinder
    Символ "#" в форматированной строке не отображает "незначащие" нули.

    В вашем случае, вероятно, подойдет спецификатор "0".

    Подробнее о форматировании чисел можно прочесть, например, в специальном разделе документации:

    Строки настраиваемых числовых форматов

    Позволю себе оставить пару комментариев-советов по поводу кода. Хотел оформить в виде комментария, но в виду объема и того что по каким-то причинам не подсвечивался синтаксис переношу сюда:

    1. Как вы должно быть заметили некоторая функциональность при считывании информации с консоли дублируется. Вместо того чтобы заниматься копированием однотипного участка внося минимальные изменения такие части удобнее выносить в отдельные функции.

    Например:

    public static double ReadDouble
        (string msg = "", string errMsg = "Произошла ошибка, повторите ввод")
    {
        if (!string.IsNullOrWhiteSpace(msg))
            Console.WriteLine(msg);
    
        double value;
        while (!double.TryParse(Console.ReadLine(), out value))
            Console.WriteLine(errMsg);
    
        return value;
    }


    Тогда считывание будет намного понятнее:

    var s = ReadDouble("Введи сечение кабеля, мм2: ");
    var l = ReadDouble("Введи длину кабеля, мм2: ");
    var i = ReadDouble("Введи нагрузку на конце линии, А: ");
    var u = ReadDouble("Введи значение напряжения источника, В: ");


    2. По возможности следует избегать использования "магических чисел" (как у вас - 0.018). Константы должны быть определены как константы. Вместо определения Pi как 3.1415926535 используете встроенное Math.PI.

    3. Использование полей в классе можно улучшить. Сейчас они у вас открытые и задаются извне. Если какие параметры являются обязательными, то определив соответствующий конструктор, можно не только добавить сделать класс более надежным, но и в дальнейшем сделать проверку на правильность передаваемых значений.

    public double S { get; set; }
    public double L { get; set; }
    public double I { get; set; }
    public double U { get; set; }
    
    public Technocalc(double s, double l, double i, double u)
    {
        S = s;
        L = l;
        I = i;
        U = u;
    }


    4. Методы можно упростить с более современным синтаксисом:

    public double padU => R * I;
    public double R => RConst / S * L * 2;
    public double diameter => Math.PI * S * S / 4;


    Итого, с учетом написанного выше класс будет выглядеть вот так:

    class Technocalc
        {
            public const double RConst = 0.018;
    
            public double S { get; set; }
            public double L { get; set; }
            public double I { get; set; }
            public double U { get; set; }
    
            public Technocalc(double s, double l, double i, double u)
            {
                S = s;
                L = l;
                I = i;
                U = u;
            }
    
            public double padU => R * I;
            public double R => RConst / S * L * 2;
            public double diameter => Math.PI * S * S / 4;
        }



    и вызывающий код:

    public static double ReadDouble
                (string msg = "", string errMsg = "Произошла ошибка, повторите ввод")
            {
                if (!string.IsNullOrWhiteSpace(msg))
                    Console.WriteLine(msg);
    
                double value;
                while (!double.TryParse(Console.ReadLine(), out value))
                    Console.WriteLine(errMsg);
    
                return value;
            }
            public static void Main(string[] args)
            {
                Console.WriteLine("\t\t\t\t" + "Программа расчета падения напряжения в кабеле. 2019 г. Версия 0.0.1");
                var s = ReadDouble("Введи сечение кабеля, мм2: ");
                var l = ReadDouble("Введи длину кабеля, мм2: ");
                var i = ReadDouble("Введи нагрузку на конце линии, А: ");
                var u = ReadDouble("Введи значение напряжения источника, В: ");
                Technocalc cable = new Technocalc(s, l, i, u);
    
                //вывод всей информации на экран
                Console.WriteLine();
                Console.WriteLine("\t\t\t\t" + "Параметры линии:");
                Console.WriteLine("--------------------------------------------------------------------------------");
                Console.WriteLine("Кол-во жил\t\tRкабеля, Ом\t\tСечение, мм2\t\tНапряжение,В\tВых. напряжение, В");
                Console.WriteLine("{0:#0.##}\t\t\t{1:0.0#}\t\t\t{2:0.##}\t\t\t{3:0.##}\t\t{4:0.##}", 2, cable.R, cable.S, cable.U, cable.U - cable.padU);
                Console.WriteLine("--------------------------------------------------------------------------------");
                Console.WriteLine("Rжилы , Ом\t\tДлина кабеля,м\t\tНагрузка, А\t\tПадение U, В\tДиаметр жилы, мм");
                Console.WriteLine("{0:#0.##}\t\t\t{1:#0.##}\t\t\t{2:#0.##}\t\t\t{3:#0.##}\t\t{4:#0.##}\t\t", cable.R / 2, cable.L, cable.I, cable.padU, cable.diameter);
                Console.WriteLine();
                Console.ReadKey(true);
            }
    Ответ написан
    4 комментария
  • Многомерный массив, почему кусок кода не сработал?

    @luna3956
    Потому что int[,] array2 = new int[10,10]; - это массив с ячейками от array2[0,0] до array2[9,9]

    Нумерация с 0 начинается. То есть первая ячейка массива размера 10 на 10 будет array2[0,0], а последняя array2[9,9].
    А Вы пытаетесь обратиться к несуществующей ячейке ([10,9]), поэтому получаете ошибку, что вышли за пределы массива.
    Ответ написан
    2 комментария
  • Как переименовать файлы с помощью bat-файла?

    axifive
    @axifive
    Software Engineer
    forfiles /S /M index.txt /C "cmd /c rename @file content.txt"
    Ответ написан
    Комментировать
  • Как соотносится токсичность в IT с другими сферами деятельности?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Есть две основные причины того, что так много разговоров про токсичность именно в ИТ:
    1. Низкий порог входа. Как следствие вайти в айти пытается огромное количество не просто неквалифицированных, но и откровенно тупых и ленивых людей.
    2. Высокий уровень представленности в интернет-пространстве. У других профессий меньше возможностей обсуждать свою работу в Интернете.

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

    kumaxim
    @kumaxim
    Web-программист
    Если у тебя проблемы с подуктивностью, значит ты не понимаешь чего ты сам хочешь.

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

    Первое что приходит на ум в этом случае - любые материальные блага: новый ПК, машина, собственная квартира/дом и т.п. Подавлюящему большенству людей на этом шарике этого хватает.

    Второе - власть. Идя по своему пути, ты встречаешь других людей, которые разделяют или противоборствуют твоей цели. Кого-то из них ты наймешь, с кем-то будет сотрудничать, с кем-то судиться и т.п. В конечном итоге у тебя сформируется круг людей. Некоторые из них будут должны тебе. Кому-то будешь должен ты. Не обязательно здесь речь про деньги. Я имею ввиду услуги. Скажем, ты не откажешь своему боссу, если он попросит тебя после работы встретить кого-то из его близких? Думаю, ты не сможешь отказать, как и твоей босс не сможет тебе потом отказать с чем-то, что выходит за рамки Ваших рабочих отношений.

    Третье - изменить мир. Понятие слишком абстрактное и для каждого выкристализовывается свое собтсвенное. Лично для меня это значит, вложить часть своей идеи в головы миллионов, причем таким образом, чтобы для них это стало повседневной нормой. 99.9% знать не будут о том, кто я вообще такой, но каждый день они будут пользоваться моим достижением. В этом плане для меня эталоном является Александр Степанович Попов - создатель радио. Сейчас на основе этого принципа работают все сотовые вышки, wifi-точки и т.п. Что именно измению я - вопрос для меня самого. На текущий день я этого еще не нашел.

    Многие авторы в сети, в книгах, курсах и т.д. будут рекомендовать взять машину(кредит на 5 лет)/квартиру(кредит на 25 лет), жениться, завести пару детей и т.п. Все это создает внешнюю мотивацию. Если ты хочешь прожить на 99% людей на этой планете - тебе пойдойдет.

    Первая проблема этой системы - ты всегда будешь затрачивать минимальные усилия на достижение результата. Условно скажем, если тебе надо заработать 50к в месяц, ты будешь видить именно вариванты на 50к в месяц. Тебе просто будут не интересны другие возможности на 75-100-300к. Ты предпочтешь поиграть на выходных в PS4, выпить в друзьями, вместо того, чтобы улучшать своей результат.

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

    Никогда не существует чисто внутренней и чисто внешней системы мотивации. У всех она смешана в той или дургой степени. Все книги, курсы и т.п. которые я видел, описывают опыт конкретного человека или предприятия. Однако, каждое из этих повестнований начинается с того, что автор четко декларирует зачем эму все это надо.

    Свою личную систему я выстроил опираясь на следующие труды:
    Gittings Things Done by David Allen
    Getting Real by 37 singnals
    Тайм Драйв от Г.Архангельсгого

    Все другое что я видел - лишь микс того, что я почерпнул из этих источников. Впрочем, тебе что-то другое может показаться более интересным, нежели здесь привел я.

    Самое главное не останавливаться, а двигаться. В движении, путь даже и отрицательном есть заряд/прогресс. Стоя на одном месте же ты получаешь лишь тишину и стагнацию.
    Ответ написан
    2 комментария
  • За что отвечают адреса 192.168.0.1 и 128.0.0.1 и почему именно эти адреса?

    Jump
    @Jump
    Системный администратор со стажем.
    Давно слышал, что адрес 128.0.0.1 идентичен адресу "localhost" и используются,
    Неправильно
    Адрес 127.0.0.1 как и вся /8 сеть это loopback обратная петля, адрес того компьютера с которого отправлен запрос.
    Имя localhost как правило присвоено именно этому адресу.

    и используются, если на компьютере "делают сервер".
    Не понятно при чем тут сервер, и что значит "делают сервер" но это вообще никакого отношения не имеет.

    Потом узнал, что есть адреса 192.168.x.x, которые тоже ведут на локальные данные
    Есть специальные диапазоны адресов которые можно свободно использовать в своих сетях-
    10.0.0.0 — 10.255.255.255
    100.64.0.0 — 100.127.255.255
    172.16.0.0 — 172.31.255.255
    192.168.0.0 — 192.168.255.255
    Это так называемые серые или частные IP адреса. Эти адреса не маршрутизируются в глобальной сети!
    Т.е у вас может быть адрес 192.168.0.1, у вашего соседа такой же адрес, и вообще миллионы устройств с таким адресом.
    Но попасть на такой адрес можно только из локальной сети, из интернета он недоступен.

    А все остальные кроме loopback, частных и еще некоторых специальных маршрутизируются в глобальной сети.

    Почему именно эти значения IP выделили под нужды локального сервера и попадания в настройки роутера?
    Потому что именно эти адреса вы можете использовать сами, никого не спрашивая.
    А вот чтобы присвоить себе адрес например 195.168.0.1 нужно его для начала арендовать, оформить на него документы и он будет доступен в глобальной сети.
    Ответ написан
    8 комментариев
  • Как подключить 2 компьютера без перекрёстного патч корда для локальной сети?

    @stratosmi
    Почти все более-менее современные сетевые контроллеры поддерживают хоть прямое, хоть перекрестное подключение.
    Автоматически.
    Уже лет 7 как.
    Ответ написан
    Комментировать
  • Доработка радиатора?

    kotomyava
    @kotomyava
    Системный администратор
    Будет проще и дешевле купить приличный куллер.
    Но так, я посмотрел на его пятно контакта на фото, и скажу так - с ним точно надо что-то делать, если его вообще ставить. =)
    Ответ написан
    5 комментариев
  • Существуют ли самоклеящиеся небольшие коврики для ноутбука?

    @Fixid
    Встречал такие на ali, но такой коврик будет потенциально опасен
    Либо крышка не будет закрываться до конца, либо толстый коврик продавит экран при закрытой крышке
    Ответ написан
    Комментировать
  • Почему сервер ПК переходит в спящий режим?

    Slayer_nn
    @Slayer_nn Куратор тега Windows
    Гугол, памаги!
    сам спросил
    Кто его отправляет в сон?


    сам ответил
    Система переходит в спящий режим.
    Причина: Application API

    Драйвер \Driver\WSDScan


    тут я много-чего добавил со ссылками и комментариями, но нечаянно выключил пк
    так что вот, лови https://bit.ly/IqT6zt

    думаю лучше будет управлять параметрами электропитания в групповой политике
    WIN+R
    gpedit.msc
    конф компа> адм шаблоны>система>управление электропитанием>параметры спящего режима
    разрешить различные режимы сна s1-s3 (оба ставим на отключено)
    потом в cmd от имени админа gpupdate /force
    теперь у нас вообще сна нету, а нет сна - нету и проблемы)))

    Если есть время, лично я бы заморочился и разобрался бы с ним (WSDScan) по хорошему

    Кстати на тостере есть похожая тема. жаль я уже не найду ее
    история удалилась все дела(

    но мой способ это самое лучшее (99.9% рабочий варик) из-той писанины что я бы предложил
    Ответ написан
    2 комментария
  • Как сделать свою почту на домене Google?

    Без хорошего опыта и понимания принципов работы современных почтовых систем, да и вообще, не рекомендую возиться с собственным почтовым сервером без веской на то причины. Во избежании блокировки собственного адреса за спам, отсутствие SPF, DKIM, DMARC и т.п. + ещё со спамом бороться.
    Посмотрите в сторону бесплатного Yandex Connect.
    Ответ написан
    Комментировать
  • Как восстановить HDD после разбития RAID0?

    @Drno
    Надо убить всю разметку на диске с помощью того же акрониса или Парагона...
    После форматнуть. Должно помочь
    Ответ написан
    1 комментарий
  • Как задать условную функцию в Excel для проверки результата?

    @Hanneman
    Используйте Formulas->Logical->IF

    =IF(A2*B2<=0.5,10,A2*B2*10)

    5be6859b52225995996236.png
    Ответ написан
    Комментировать
  • Чем занят Диск C?

    ApeCoder
    @ApeCoder
    Windirstat
    Ответ написан
    Комментировать
  • Почему письма попадают в спам?

    denistu10
    @denistu10
    Linux System Administrator/SRE Engineer
    PTR и SPF записи прописали для домена?
    DKIM-подпись настроили?
    Если нет, то настраивайте
    DKMI - https://yandex.ru/support/pdd/set-mail/dkim.html
    PTR и SPF - https://interface31.ru/tech_it/2013/10/pochtovyy-s...
    Ответ написан
    5 комментариев
  • Как восстановить раздел восстановления Windows 10?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    пара ссылок (мне помогло в подобной ситуации)
    https://www.comss.ru/page.php?id=3875
    https://www.comss.ru/page.php?id=3881
    на сколько я помню это блог, по теме в нем более чем одна статья

    ps вам по ходу уже пора по второй ссылке. ща докину свои батники

    1 fsck.cmd
    spoiler
    @echo on
    chkdsk c: | grep Windows
    @rem pause
    chkdsk d: | grep Windows
    @rem chkdsk g: | grep Windows
    @rem chkdsk h: | grep Windows
    chkdsk s: | grep Windows
    @rem chkdsk x: | grep Windows
    @rem pause
    sfc /scannow
    
    @pause
    findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log > "%userprofile%\Documents\sfclogs.txt"
    type "%userprofile%\Documents\sfclogs.txt" | grep corrupted
    type "%userprofile%\Documents\sfclogs.txt" | grep repaired

    буквы дисков и количество чеков, это вы уж сами
    grep из git (в винде такого инструмента нет) (!! git инсталлирован с опцией прописки в "пути" инструментов mingw)

    2 dism+.cmd
    spoiler
    DISM /Online /Cleanup-Image /CheckHealth
    @pause
    DISM /Online /Cleanup-Image /ScanHealth
    @pause
    DISM /Online /Cleanup-Image /RestoreHealth
    @pause
    DISM /Online /Cleanup-Image /RestoreHealth /Source:"e:\sources\install.wim"


    это по второй ссылке

    3 dism++.cmd
    spoiler
    DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:e:\Sources\Install.wim:1 /LimitAccess
    DISM /Online /cleanup-image /restorehealth


    извините за многочисленные правки
    Ответ написан
    2 комментария