• На сколько плохо использовать '*' в sql запросе?

    @Mixxer
    Плохо тем, что:
    • тянутся лишние поля (очень редко нужна вся таблица)
    • будет возможно на доли секунд медленнее работать при большом количестве запросов
    • менее понятный код (нельзя будет найти, где используется какой-то столбец)
    • если запрос сложный - может быть дублирование имён
    • можно получить тяжелоотлавливаемый баг, когда изменилась таблица, но в запросе была * и запрос отработал, а логика отвалилась из-за неправильных данных (или просто неправильно работает). А были бы конкретные столбцы - упало бы ещё на запросе
    Ответ написан
    3 комментария
  • Как узнать по какому адрессу находится админпанель роутера?

    @solalex
    Адрес шлюза, выдаваемый по DHCP и есть адрес роутера. Что касается веб-морды, то ее могли перенести на другой порт, не 80 как по умолчанию. Можно запустить сканер портов и найти порт админки.
    Ответ написан
    Комментировать
  • Как сохранить в кэш интовое значение?

    @deliro
    Кажется, вы не понимаете, что такое кэш.
    Можно хранить в файле настроек (.ini, .conf)
    Ответ написан
    Комментировать
  • Насколько глупое решение, бросить все и начать новую IT карьеру в мегаполисе?

    @Chekhoved
    Маленький благоустроенный город в миллион раз лучше какой-нибудь Москвы. А заработок не зависит от того, где ты находишься - фриланс же.
    Ответ написан
    2 комментария
  • Зачем return в программе?

    @MiiNiPaa
    Вот если указано return 0; - то программа закончиться.Я правильно понимаю?
    Только если это return в main().

    return это команда закончить текущую функцию (и вернуть значение вызыающей функции)

    А если ничего не указать?Она будет в памяти висеть или что?
    С 1998 года она выполнит return 0 (опять же, справедливо только для main() ) как только достигнет конца функции main().
    Т.е. если указываешь 0, то это типа false.
    Это EXIT_SUCCESS.
    А если указать 1?
    Implementation defined. Обычно работает так же как и EXIT_FAILURE.

    Фактически это код выхода. Он возвращается в ОС. Если программа была запущена из командной строки этот код выхода можно проверить чтобы узнать как была завершена программа.
    Ответ написан
    1 комментарий
  • Как правильно скрывать методы базового класса (C++ наследование)?

    @MiiNiPaa
    Замещается в любом случае, что с const , что без const..
    Уверены что не скрывается? Пробовали через указатель на базовый класс вызвать функцию? Или объявить её с override чтобы компилятор поймал ошибку.

    Пример скрытия/перегрузки coliru.stacked-crooked.com/a/b948b28d158c70d9
    Ответ написан
    1 комментарий
  • Как скормить php-fpm bash скрипт?

    Ernillew
    @Ernillew
    Администрирую *nix-системы с 1997 года
    Предлагаю продолжить вопросы.
    "Как скормить MySQL конфиг от PostgreSQL?"
    "Как скрестить амебу и обезьяну?"
    "Как использовать монитор в качестве дверного замка?"

    Никак.
    php-fpm не для bash'а.
    Обрабатывайте башевые скрипты иным образом.
    Ответ написан
    8 комментариев
  • Почему приложение x64 в два раза медленнее x86?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Отвечать на этот вопрос без какой-либо дополнительной информации - это как гадать на кофейной гуще. Какой CPU - если это древний Pentium D с допотопным конвейером и глупыми регистрами - одно дело, а если это новейший Core i7 на Haswell - другое. Что до настроек - вот честно, "стандартные" вообще ни о чём не говорит. Я уже не говорю, что было бы не плохо указать количество опытов с максимальным и минимальным - вполне возможно глупые ОС с планировщиком как-то неудачно распределяют время. Любой ответ, который можно тут указать может быть техническим грамотным, но совершенно не соответствующий истине.

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

    Теперь давайте вместе подумаем о том, какие различия между x86-64 и x86. На самом деле, вопрос поставлен не очень корректно - x86-64 почти полностью включает в себя x86. Из изменённого - размер указателя (адреса), да немного переделана логика регистров (хотя все они на месте, просто добавилось ещё лишние несколько десятков) - теперь часть аргументов в функцию передаётся через дополнительные регистры, тогда как в x86 все идут через стек. Однако получить здесь преимущество не так уж и просто - процессор тоже не дурак, в случае линейной обработки информации (или любая длительная работа с небольшими участками памяти) он прекрасно всё кэширует и работа со стеком в общем случае не сильно медленнее работы с регистрами.

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

    Ну да ладно, ясное дело, сложение реализовано за 1 такт. Скорее всего. Конечно, здесь вопрос процессора, но даже узнав модель будет сложно узнать наверняка, разве только синтетическим тестом (много раз обращаться по адресу - сумме двух случайных чисел). Да и Windows 8.1 никогда не был стандартом производительности (скорее с точностью наоборот), и VC++ никогда не был лучшим компилятором.

    Попробуйте gcc (меня разве только интересует откуда на Windows взялся gcc) с флагом -O3. И посмотрите машинный код для 64 бита и 32 бита (можно пользоваться objdump из binutils или посмотреть машинный код в IDE Visual Studio - точно расположение кнопки не помню, но можно поискать в менюшках). Скорее всего причина не одна, их множество. Так, вызов функции сопровождается сохранением контекста, тогда как в x64 регистров больше, больше и контекст. Собираем такие моменты по крупицам... Вот и получаем.

    P.S. Давным давно, разговаривал с преподавателем. Простая перекомпиляция под 64 бита ускорила код на 30%. Это был колхозный кодек, немного похожий на libx264 (от туда была сдёрнута часть кода). Естественно, проект собирался со всеми оптимизациями, со всем расширениями инструкций - со всем, чем можно. И сборка под платформу x86-64 (с SSE, MMX, FMA и прочие). Жутко наукоёмкий разношёрстный код (писали все - от зелёных аспирантов, до ровесников Страуструпа и профессоров университета) - туева хуча функций, структур, объединений и очень, очень много параметров, многие из которых передают в аргументы функций. Ну и целевая платформа - жутко порезанный и переделанный Windows Embedded - там просто не чего было планировать.
    Ответ написан
    Комментировать
  • Где взять первых клиентов?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Я октрываю интернет-магазин, передо мной встаёт вопрос - где взять клиентов?
    Я открываю автомастерскую, передо мной встаёт вопрос - где взять клиентов?
    Я октрываю эвент-агенство, передо мной встаёт вопрос - где взять клиентов?
    Я стал юристом, передо мной встаёт вопрос - где взять клиентов?
    Я стал автодилером, передо мной встаёт вопрос - где взять клиентов?
    Я купил банк, передо мной встаёт вопрос - где взять клиентов?
    Я открыл веб-студию, передо мной встаёт вопрос - где взять клиентов?
    Ответ написан
    2 комментария
  • Правильное условие для множественного запроса?

    BuriK666
    @BuriK666
    Компьютерный псих
    SELECT fab_price.*, users.first_name, users.second_name, users.company FROM fab_price LEFT JOIN users ON users.id = fab_price.parent_id WHERE fab_price.name = '$type_name'
    Ответ написан
    Комментировать
  • Возможно ли "соединить" два файла, не перемещая данные?

    @tex0
    Задумайся над смыслом понятия "дефрагментация диска".
    И как сказал выше Hydro - в ЮзверьМоде ты такого не сделаешь. Нужно делать в KernelMode. Кури в сторону организации хранения данных (файловые системы).
    Ответ написан
    Комментировать
  • Через перенаправление почты в gmail получаю чужие письма и нотификации. Что делать?

    saboteur_kiev
    @saboteur_kiev Автор вопроса
    software engineer
    Разобрались.

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

    Кроме того, гугл игнорирует точки в емайле. Таким образом name.familyname1@gmail.com и namefamilyname1@gmail.com - для гугла один адрес, а зарегистрировать он позволяет оба.
    Ответ написан
    2 комментария
  • Как развить программистское мышление?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Соглашусь с Spetros, умение гуглить жизненоважный навык в программировании) 99% любых задач в том или ином виде уже решались до вас, по 70% уже есть хорошо расжованное описание, 50% есть еще и инструкции, поэтому если у вас не удается найти решение это либо плохо искали, либо неправильно поставлена задача.
    По части второго в программировании нужно уметь разбивать задачу на части (подзадачи). То есть скажем задача найти подстроку во всех файлах папки, сходу не ясно как можно искать сразу во всех файлах, очевидно нужно искать в каждом по очереди, если файлы мелкие то все нормально, можно считать их целиком и потом спокойно делать в них поиск, но если они весом под 24Гб, в таком случае нужно читать файлы построчно и делать поиск подстроки в каждой отдельной строке и т.д.
    Если "в голове" не получается построить полное решение конкретной подзадачи, нужно разбить ее на функциональные части и каждую из них решать как отдельную подзадачу. Вцелом любой, даже неимоверно сложный продукт с миллионом строк кода это лишь совокупность маленьких фрагментов, каждый из которых можно понять.
    Ответ написан
    1 комментарий
  • Как хранить большое количество элементов в массиве?

    @endemic
    Если я не ошибаюсь, в качестве индекса массива используется size_t, который соответствует максимальному размеру памяти для процессора с даннйо битностью. То есть описанная вами ситуация не может произойти в принуципе.

    ru.cppreference.com/w/cpp/types/size_t
    Ответ написан
    Комментировать
  • Как определить возвращает ли экземпляр Delegate значение?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Попробуйте так:
    static bool IsAction(Delegate x){
        return x.Method.ReturnType==typeof(void);
      }

    Правда, я не все возможные делегаты проверял.
    Ответ написан
    Комментировать
  • Как в триггерах ссылаться на таблицы и поля этих таблиц?

    @Sumor
    Для SQLServer это таблицы inserted и deleted Использование таблиц inserted и deleted.
    Подумайте об использовании транзакций вместо триггеров. Особенно если предполагается отмена действия в триггере по какому-либо условию.
    Триггер отделён от логики добавления данных о платеже и изучающему ваш код будет неочевидно почему изменилась таблица Долг.
    Триггеры можно случайно/специально/для отладки отключить и вы получите кучу проблем.
    Ответ написан
    Комментировать
  • Передача объекта в конструктор по ссылке. Не компилируется. Почему?

    @MiiNiPaa
    Ссылки нужно инициализировать. Нельзя написать просто
    int& x;
    x = 10;
    Нужно указать на что будет ссылаться x. В вашем случае нужно использовать member initializer list (вообще это хорошая идея инициализировать всё там чтобы избежать оверхэда):
    Person::Person(string name, Address& address) :
        _name(std::move(name)), //Поддерживаем move-семантику
        _address(address)
    {}
    Ответ написан
    Комментировать
  • В чем преимущества СУБД Oracle перед MySQL, PosgreSQL?

    sim3x
    @sim3x
    MySQL это для школьников и блокнотиков
    а еще для танчиков WoT, где варгейминг хранит 400Гб данных пользователей
    // правда не в мускуле, а марииДБ

    А яндекс уходит от Оракла на постгрес, тк оракл не дает своих исходников, а им очень хочется посмотреть почему у них все тормозит

    Тот кто дорос да уровня
    профи
    вообще очень осторожно относится к понятию
    только Х
    Ответ написан
    Комментировать
  • Почему так популярен .NET/C#/ASP MVC?

    @PokimonFromGamedev
    Ведущий разработчик Kotlin
    Почему так много вакансий с .NET/C#/ASP MVC?

    Хорошая платформа, ничем не уступающая остальным.

    IIS как application server неплохо справляется.
    Windows как сервер работает не хуже Linux.

    Микрософт активно развивает платформу и сервисы. Значит в будущем будет еще больше вакансий и проектов!

    Ну и C# как язык сейчас наверное топ1.
    Тут тебе и LINQ и деревья выражений и асинхронное программирование и динамическая типизация. А сейчас еще компилятор перепишут и вообще будет хорошо.
    Ответ написан
    Комментировать