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

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Фигурные скобки создают новый блок со своей областью видимости (к последнему выражению это отношения не имеет):
    int A = 0;
    
    {
        int A = 1;
        int B = 1;
        std::cout << A << "\n"; // 1
        std::cout << B << "\n"; // 1
    }
      
    std::cout << A << "\n"; // 0
    //std::cout << B << "\n"; // <-- error: B was not declared in this scope
    Ответ написан
    16 комментариев
  • Как сейчас актуально делать свой почтовый сервер, чтобы доходило до gmail/yandex/mail?

    @CHolfield
    Чтобы доходили письма, нужно:
    1. Настроить DNS. MX- запись, А-запись хоста, в обратной зоне соответствующая PTR-запись.
    2. Купить сертификат для SMTP и прикрутить его к серваку. Имя субъекта в серте должно совпадать с именем хоста DNS.
    3. Пройтись по публичным блек-листам и удалить свой айпишник оттуда, если он там был.
    Ответ написан
  • Как работать с выгоранием?

    @Ksushqa
    Unity developer
    Как же я вас понимаю! Тоже 2+ года и тоже чувствую себя выжатой как лимон. Работа за копейки, нет конца и края меняющимся требованиям. Хотят много, дают в ответ мало, даже хотя бы банального эмоционального отклика (я довольно идейный человек и мне искренняя благодарность очень важна) нет. Ни "спасибо", ничерта... Сделай за себя и за того парня. В итоге пришлось идти в больничку. Обследовалась от и до. Сказали все "болезни" у меня от нервного истощения, тело здорово. Была недавно на больничном, даже отдохнуть не дали нормально. Всё равно пришлось работать. На выходных – часто работаю. Короче, вы понимаете, каково это :) И при этом работать на устаревшем ***, за 2+ года мало роста.

    На этой неделе понесу заявление на увольнение.

    Вина на вас только в том смысле, что вы себя недостаточно любили :) Не отстаивали свои "границы", как любят говорить психологи.

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

    Заранее не всегда возможно. Но вы должны быть внутренне настроены на то, какую работу вы хотите, а что терпеть не будете точно (что аукается на ваше здоровье?). И отстаивать это в общении с работодателем. Я начала отказываться работать на выходных, перестала торопиться всё успеть, потому что начальству захотелось. Перестала соглашаться со всеми заданиями подряд, а если что-то вижу слишком затратным или нецелесообразным – так и говорю с приводом аргументов. А в любую оценку времени на работу теперь нагло прибавляю время на отдых/восстановление (просто потому что привыкла себя загонять и хочу чуть замедлиться, а значит нужно больше времени). Ничего, никто не умер. Едут на том, кто везет :) Не болейте!

    P.s.:
    Ну вот собственно, выгорание случилось, как теперь работать с выгоранием?
    Возьмите направление к неврологу. Если верите в "психологов", можете на консультации походить. Тут дело не только в сложности работы, но и в том, что вы берете всю нагрузку, что на вас взваливают (быть хорошим? вина при отказе?). Двояко.
    Ответ написан
  • Как правильно сделать "git pull для обновления" чтобы получить изменения из одной папки в другую на одном компьютере?

    Stalker_RED
    @Stalker_RED
    Вы не получите простую инструкцию из двух команд. Просто потому, что их для нормальной работы понадобится чуток побольше, чем две. Ближе к десятку.
    В принципе, можно написать несколько sh скриптов, которые будут скрывать в себе все внутренности, но это до первого конфликта.

    Вам в любом случае понадобиться узнать что такое add, commit, pull, push, checkout и merge. А рано или поздно еще и некоторые ключи к ним.

    Книжка вот: https://git-scm.com/book/ru/v2
    Ответ написан
  • Правильно ли я понимаю?

    15432
    @15432
    Системный программист ^_^
    Неа, number[3] - четвертый элемент массива, нумерация с нуля идёт (0, 1, 2, 3 ,4).
    Ответ написан
    1 комментарий
  • Почему неправильно преобразуется структура?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Из за чего это ?

    Из-за выравнивания полей данных в структуре и из-за того, что long -- 8 байт. В структуре my_struct_in у тебя идут подряд short, short и long. Первые два short -- выравнены, а чтобы выравнять long компилятор вставил перед ним в структуру дырку длиной в 4 байта. Можно напечатать offsetof(struct my_struct_in, addr) чтобы в этом убедиться.

    Что делать? Использовать типы фиксированной ширины (uint32_t addr, если имелся в виду IP адрес). Паковать структуры (если выравнять нельзя), либо располагать поля согласно их натуральному выравниванию.
    Ответ написан
    3 комментария
  • В чем ошибка (работа с памятью, деструкторы)?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    У вас же C++, т.е. можете использовать вектор для хранения элементов без необходимости явного выделения памяти:
    #include <vector>
    
    // double* _coords;
    std::vector<double> _coords;
    
    // _coords = new double[N];
    _coords.resize(N);

    Ну и деструктор можете не писать.
    Ответ написан
    Комментировать
  • Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    Я отвечу на вопрос из заголовка: потому что сложность алгоритма говорит о том, как он будет вести себя при неограниченном увеличении размерностей входных данных. И больше ни о чём. Т.е. нельзя имея два линейных алгоритма сказать, что они будут работать одинаковое время. Но можно имея линейный и квадратичный алгоритм сказать, что начиная с какого-то момента линейный всегда будет работать быстрее.
    Ответ написан
    2 комментария
  • Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    @dmshar
    "Я вам не скажу за всю Одессу" :-), но давайте сравним только with_map(a, l) и traditional_way(a, l). В обоих функциях присутствует цикл (for item in l:) который выполняется примерно за одинаковое время. Но with_map содержит еще и строку
    z = min(map(lambda x: abs(a-x), l)) , которая сначала выполняет map(lambda x: abs(a-x), l) -
    еще один проход по массиву, а в полученном результате ищет min - т.е. пробегает по списку еще раз. Итого - три прохода по массиву, вместо одного в traditional_way. С остальными функциями - примерно та-же история. (Например min(l, key=lambda x: abs(a-x)) - это как минимум два прохода по вашему списку).
    Ответ написан
    3 комментария
  • Почему перестает работать жесткий диск?

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

    2. напишите, что за железо, хотя бы примерно, и сколько ему лет. А то вдруг у вас там материнки, БП и диски, которым по 7-10 лет - тогда было бы закономерно, что оно всё умирает одно за другим.
    Когда железо менялось на новое - это было на самом деле новое, т.е. из магазина?

    3. компьютеры подключены через нормальные сетевые фильтры? (а лучше через ИБП (а еще лучше фильтр+ИБП)) Не замечали явных косяков с питанием (например, меняется яркость освещения в комнате)? Есть ли возможность мультиметром измерить напряжение в розетке? Марку и мощность БП напишите.

    4. по второму системнику - при включении смотреть на индикатор активности диска. Если через несколько секунд после включения индикатор начинает моргать (и моргает так, грубо говоря, минуту), значит в это время система загружается, т.е. в целом комп живой, только надо понять, почему нет картинки на мониторе.
    Если индикатор диска вообще не мигает после включения, значит комп - труп (60% проблема с материнкой, 30% - с БП, 10% - что-то ещё таинственное).
    Ответ написан
    1 комментарий
  • Требуется бэкап отдельных файлов при их изменении под Windows10 (перехват функции сохранения)?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    История файлов в Windows 10.
    файл может быть изменен через 1 год.
    А для этого нужно делать резервные копии файлов.
    Ответ написан
    Комментировать
  • Требуется ли для системного администратора знание программирования в 1с/web?

    @Dementor
    программист, архитектор, аналитик
    Заходит в ИТ отдел главбухша и прямиком к ведущему админу подходит:
    - У меня такая-то такая-то проблема с 1c.
    - У нас нет штатного специалиста по 1c, но я его вызову, будет завтра.
    - А знаете, у меня на прошлой работе, этим занимался админ!
    Тот с небольшой паузой:
    - А у меня на прошлой работе, главбухша полы мыла!

    P.S. Думаю, что намек понятен. Единственное программирование, которым должен заниматься админ - это автоматизация своей работы, а не решение бизнес-задач.
    Ответ написан
    5 комментариев
  • Почему #define не рекомендуетс к использованию?

    BacCM
    @BacCM
    C++ почти с рождения
    Потому, что
    1. нет контроля типов
    2. нет ограничения по области видимости, типа неймспейсов.
    3. макрос разворачивается подстановкой в месте использования, т.е. там будет вставлен код
    ((a) > (b) ? (a) : (b)) который превратится в ((++a) > (b+10) ? (++a) : (b+10))
    4. макросы сложно отлаживать
    5. неправильно написанный макрос будет компилироваться в непонятно что. Например если убрать те же скобки

    как без них раскроется выражение x = max(a, b) + 10; ?
    x = a > b ? a : b+10;

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

    #include <iostream>
    
    #define mymax(a,b) a>b?a:b
    #define mul(a,b) a*b
    
    int main() 
    {
    
    	std::cout << mymax(5, 10) << std::endl; // Ошибка компиляции
    	std::cout << mul(5+5, 10) << std::endl; // Неожиданно на выходе 55, а не 100
    
    	return 0;
    }
    Ответ написан
    3 комментария
  • В какой специальности или должности можно соединить ИТ, финансы и юриспруденцию?

    Руководитель ИТ-компании.
    Ответ написан
    Комментировать
  • Объявление идентификатора #define в прототипе функции в Си (C), можно ли так делать?

    myjcom
    @myjcom
    Олег Филимоненко,
    у вас кривой вариант перевода
    ОНА?
    Б. Керниган, Д. Ритчи "Язык программирования C" Третье издание.
    Автор: Б. Керниган, Д. Ритчи (Перевод с английского Вт. С. Штаркмана, под редакцией Вс. С. Штаркмана.)
    Год: 1992
    Издательство: "Финансы и статистика"
    ISBN: 5-7940-0045-7
    Тут еще:
    5c61ed8cad500947739165.png
    в печку ее
    ...
    в оригинале
    прототип функции:
    int getline(char line[], int maxline);

    Правильное издание
    5c61ddfb74bf7964476334.png5c61de311e4e4785447824.png
    Язык программирования С, 2-е издание.
    Год: 2009
    Автор: Kernighan B., Ritchie D. / Керниган Б., Ритчи Д.
    Издательство: Вильямс
    ISBN: 978-5-8459-0891-9

    А в самом первом
    The C programming language - First Edition
    Год издания: 1978
    Автор: Kerninghan, Brian W.
    Издательство: Bell Telephone Laboratories
    ISBN: 0-13-110163-3
    Язык: Английский
    5c61e83b28570703220686.png5c61e8f0e2cc4890842644.png
    Ответ написан
    1 комментарий
  • Обмен сокетов между Python и Java?

    igorzakhar
    @igorzakhar
    Сокет - это абстракция операционной системы, некая структура данных ядра, которая не зависит от языка программирования. Вы можете написать сервер на одном языке, а клиент написать на другом языке. Программа-"сервер" создает слушающий сокет (listen), программа-клиент, написанная на другом ЯП, подключается (connect) к серверу.
    Ответ написан
    2 комментария
  • Правомерно ли использовать OEM-лицензию, при утере документов на приобретение устройства?

    Jump
    @Jump
    Системный администратор со стажем.
    Правомерно ли использовать OEM-лицензию, при утере документов на приобретение устройства?
    Не совсем правильная постановка вопроса.
    Используют софт, а не лицензию.
    У вас есть лицензия (разрешение правообладателя) на использование Windows Server 2012r2, следовательно вы можете его использовать на законных основаниях.

    документы на приобретение были похерены
    Утрата документов не лишает вас прав на использование. Но вот доказать правомерность использования становится сложнее.

    Самое главное - не путайте ключ активации с лицензией, это совершенно разные вещи.
    Вы можете использовать активированную честно купленным ключом программу - но это будет незаконно, если у вас нет лицензии.
    Вы можете использовать скаченную с торрента, патченную или активированную кейгеном, кряком программу и это полностью законно, если у вас есть лицензия.
    Ответ написан
    9 комментариев
  • Перевести wav файл в числовую последовательность значений от 0 до 255?

    Попробуйте посмотреть в сторону scipy.io.wavfile.read

    Судя по документации, во втором параметре возвращает как раз то что вам нужно - массив значений из файла wav.
    Ответ написан
    1 комментарий
  • Как отсортировать массив по Unicode?

    myjcom
    @myjcom Куратор тега C++
    Если не верить своим глазам и все таки массив.

    https://ru.cppreference.com/w/cpp/algorithm/sort
    #include<iostream>
    #include<string>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    int main()
    {
    	vector<wstring> words = { L"1", L"Goose", L"14", L"gas", L"/" , L"file10", L"file11" };
    	sort(words.begin(), words.end());
    
    	for(auto s : words)
    	{
    		wcout << s << " ";
    	}
      wcout << endl;
    	wcin.get();
    }
    OUT: / 1 14 Goose file10 file11 gas
    Ответ написан
    Комментировать