• Как отслеживать онлайн статус пользователя, как в соц. сетях?

    Sanasol
    @Sanasol Куратор тега Веб-разработка
    нельзя просто так взять и загуглить ошибку
    Надо просто добавить какой-нибудь last_activity_at в базу-таблицу пользователей и при любом запросе юзера к бекенду ставить туда текущую дату.

    При выборе уже выбираете тех у кого (last_activity_at > текущее_время - 5 минут) например.

    Это и будут онлайн пользователи.

    https://qna.habr.com/answer?answer_id=1535663#answ...
    Ответ написан
    Комментировать
  • Нормальный ноутбук как макбук?

    @ewgenc
    Huawei последние на Ryzen посмотрите.
    Ответ написан
    1 комментарий
  • Как понять когда ставить указатель?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Указатель, по сути, хранит адрес каких то данных (переменной, структуры, слайса и т.д.).
    Иными словами он "указывает" на область данных.

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

    Например:
    type BigStruct struct {
        field1 int
        filed2 string
        field3 uint
        field4 []byte
        ...
        field50 string
    }

    Предположим, что после создания этой структуры и заполнения всех её полей она занимает в памяти 300мб.

    Если вы сделаете функцию, которая будет принимать такую структуру как агрумент, например вот так
    func Report(s BigStruct)
    то при каждом вызове этой функции вся структура (300мб) каждый раз будут копироваться.
    Пример:
    s := BigStruct{}
    // заполняем поля
    Report(s)


    Чтобы избежать такой мега нагрузки - можно передавать не копию данных, а указатель, т.е. адрес в памяти, где хранится сама структура.
    Для этого нужно объявить агрумент функции как указатель, т.е. ставим *.
    func Report(s *BigStruct)
    А код уже будет выглядеть вот так.
    s := BigStruct{}
    // заполняем поля
    Report(&s) // тут добавился & - берём адрес структуры, а не саму структуру

    Или второй вариант
    // создаём переменную s сразу с типом указатель на BigStruct
    s := &BigStruct{}
    // заполняем поля
    Report(s) // поскольку s уже является указателем - & тут не нужен


    В общем * используется:
    - когда нужно объявить переменную
    var s *BigStruct
    - когда нужно прочитать/записать значение, которое храниться по адресу указателя
    var i *int
        i = new(int)
        *i = 10 // пишем значение
    
        fmt.Printf("i: %v\n", i)
        fmt.Printf("*i: %v\n", *i)

    Вывод будет примерно таким
    i: 0xc0000160d8 (это адрес памяти, где лежит значение переменной i)
    *i: 10 (а это её значение)


    & (амперсанд) используется когда нужно получить адрес переменный.

    Еще один вариант применения - если нужно иметь возможность модифицировать данные у параметра функции. Если нужны примеры - дайте знать, я напишу.
    Ответ написан
    12 комментариев
  • Помнить всё: как вы справляетесь с запоминанием и сохранением информации в памяти?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Всё запоминать не нужно. А то, что нужно откладывается практикой плюс немного теории
    Ответ написан
    Комментировать
  • Помнить всё: как вы справляетесь с запоминанием и сохранением информации в памяти?

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

    по крайней мере у меня так. естественно, речь о том, что уже знал.
    Ответ написан
    4 комментария
  • Можно ли найти некий список оферов на работу?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Не все так просто. А ресурсов море, начиная с достаточно простого relocate.me, классики ввиде linked.in, indeed, monster и многие другие.
    Но если Вы думаете, что можно просто подать заявку уехать,то сильно ошибаетесь, на многие вакансии сотни кандидатов и выделиться среди них настолько, чтобы компания заморочилась с перевозкой, очень сложно.
    Ответ написан
    Комментировать
  • Можно ли найти некий список оферов на работу?

    DevMan
    @DevMan
    вы начитались, а скорее просто неверно интерпретировали, какой-то хрени.
    релокейтают очень охотно и с удовольствием. но только тех, кто уже состоялся.
    джунам/ждунам в этой поляне ничего не светит. кроме завязок.
    Ответ написан
    Комментировать
  • Почему метод filter, в отличие от старого for, не отрабатывает корректно?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    фигурные скобки лишние: нужно возвращать true / false

    let resultArr = products.filter((product) => {
      return product.price > 100;
    });
    
    // или
    let resultArr = products.filter((product) => product.price > 100);
    Ответ написан
    2 комментария
  • AI c функцией Парсинг веб-данных сайтов?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Тут ничего сложного и никаких AI не надо. Стран ограниченное количество. Можно сделать просто параметризованный поиск по базе стран с параметрами или вообще просто сделать матрицу. С отелями сложнее - вас надо получать доступ к api агрегаторов и подписывать с ними договор
    Ответ написан
    Комментировать
  • Как сделать из этого метода нормальный код?

    GavriKos
    @GavriKos Куратор тега Unity
    Избавиться от дубликатов в виде Find, как минимум. Как можно больше кешировать.
    Ответ написан
    8 комментариев
  • Мне необходимо выбрать тему диплома, связанную с BIG DATA, e-commerce. Какую лучше взять?

    @dmshar
    Время, когда любую задачу машинного обучения гордо обзывали Big Data давно прошло. Big Data тем и отличается от традиционного Mаchine Learning (включая нейронки между прочим), что данных должно быть очень много. Очень. Очень-очень-очень. Настолько много, что вы не в состоянии решить задачу без распараллеливания, без специальных методов работы с постоянной подкачкой и пр. Big Data - это не классификаторы, не кластеризация и не Deep Learning. Это Hadoop и все, что вокруг него, это MapReduce, это Spark, X-plenty, Cassandra, всякие Hana, Teradata, Talend и пр.
    Вы точно это имеете ввиду, когда говорите про Big Data? И у вас есть терабайты этих самых данных, и доступ к соответствующим инструментам их обработки? Интернет-магазин, говорите? У вас есть доступ к данным Amazon?
    Может для начала стоит хоть с терминологией правильной разобраться (хотя диплом, что-то же вы 4 или 6 лет все-таки учили?), а уж потом думать про диплом.
    И если вы все-таки решите писать работу в области Machine Learning, то рекомендую для начала подумать, к каким данным у вас есть реально доступ, а уж исходя из этого и тему придумывать.
    Ответ написан
    Комментировать
  • Как пeредать const char* в c++ фунцию из c#?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Ответ написан
    Комментировать
  • Как посчитать количество определенных символов в строке на Rust?

    ozkriff
    @ozkriff
    Rust э̶н̶т̶у̶з̶и̶а̶с̶т сектант, хобби игродел
    В постановке задачи есть важный нюанс: что считать символом?

    Если считать обычный встроенный char, то просто получаем .chars() итератор из строки, фильтруем и считаем:
    "12121".chars().filter(|&c| c == '2').count()

    Но надо понимать, что на строках с графемными кластерами (а именно их обычные пользователи обычно считают символами) такой код будет криво работать. Если это нам важно, то идем за lib.rs/unicode_segmentation и пользуемся его graphemes методом:
    "éaébé".graphemes(true).filter(|&g| g == "é").count()


    Песочница.
    Ответ написан
    1 комментарий
  • Как узнать с какими параметрами запущена програмам?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    1) Звоним в спортлото, чтобы вам подключили бесплатную услугу google;
    2) Заходим в https://google.com и пишем простой запрос "c# узнать параметры запущенного приложения"
    3) Переходим по первой ссылке: Получение информации из столбца "Командная строка"...
    4) ctrl+c и ctrl+v:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Diagnostics;
    using System.Management;
     
    namespace ConsoleApplication7 {
        class Program {
            static void Main(string[] args) {
                Process[] processList = Process.GetProcesses();
                Process p = processList.Where(temp => temp.Id == 844).FirstOrDefault();
                if (p != null) {
                    GetCommandLine(p.Id);
                }
                Console.ReadLine();
            }
            public static void GetCommandLine(int id) {
                using (ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + id)) {
                    foreach (ManagementObject mo in mos.Get()) {
                        Console.WriteLine(mo["CommandLine"]);
                    }
     
                }
            }
        }
    }
    Ответ написан
    Комментировать
  • Как работает данный код?

    легко и просто, в питоне есть как распаковка кортежей, что собственно и происходит
    получается примерно так:
    {}[()] = 0
    word = 'what

    также в питоне ключем в словаре может быть любой объект от которого можно взять hash, поэтому
    сначала {} - создается словарь, потом в этот созданный словарь с ключом () - кортеж идет присваивание данных

    но так писать не стоит
    Ответ написан
    Комментировать
  • Как работает данный код?

    @antares4045
    ну вообще, писавший этот код, вероятно не очень здоров
    для начала предлагаю разобраться с деструктуризацией

    если вы напишите
    a,b = 2,3
    то в переменной a окажется значение 2
    а в переменной b -- значение 3

    это же можно использовать в циклах:
    words = [(0,'What'),(1,'the'),(2,'heck?')]
    for key,word in words:
        print('key:', key)
        print('word:', word)
        print()

    вывод:
    key: 0
    word: What

    key: 1
    word: the

    key: 2
    word: heck?


    если же при разборе кортежа, какой-то элемент вам не нужет, то можно просто использовать нижнее подчёркивание

    words = [(0,'What'),(1,'the'),(2,'heck?')]
    
    for _,word in words:
        print(word)


    Но автор вашего примера решил сделать нечто странное:
    {} -- создание пустого dict
    [()] -- присвоение в него по ключу "пустой кортеж" значения

    учитывая, что исходный dict никуда не сохраняется, это можно считать отчисткой, только вот зачем?
    a = {}
    a[()] = 5
    print(a)


    {(): 5}
    Ответ написан
    Комментировать
  • Какие ЯП являются (почти) "мертвыми" и бесперспективными?

    @evgeniy_lm
    Мне лично на ум приходит такие как VBA

    Несколько лет назад общался с одним чудиком который возмущался тем что он "крутой программист" знает туеву хучу "крутых ЯП", но не может найти работу, а его "тупой" одноклассник в буржуйской фирме зашибает бабло на "сраном VBA"

    Не существует "бесперспективных" ЯП, существуют бесперспективные программисты
    Ответ написан
    Комментировать
  • Как быстро развернуть 5гб mysql дамп в Windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Ускорить работу с дисковой системой можно, если у тебя в дампе множество инсертов.
    Подели их на куски и оберни скажем каждые тысячу инсертов транзакцией:
    START TRANSACTION;
       INSERT ...
       INSERT ...
       ...
       COMMIT;


    Отключи проверку уникальности ключей перед восстановлением
    SET FOREIGN_KEY_CHECKS = 0;
       SET UNIQUE_CHECKS = 0;

    после включи ее назад
    SET UNIQUE_CHECKS = 1;
      SET FOREIGN_KEY_CHECKS = 1;


    Это то, что навскидку.
    А так - сам mysql достаточно хорошо оптимизирован и под Линукс и под Виндовс. Думаю у тебя все же винда и линукс имеют либо разные спецификации железа либо настройки самой mysql..
    Ответ написан
    2 комментария
  • Как из такого списка вытащить только Имя и Фамилию?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Серебряной пули тут нет. Я бы скопировал всё в Google Sheets(там больше возможностей), и там с помощью REGEXTRACT() вытаскивал бы данные, возможно по частям.
    Можно, например, искать слова с большой буквы среди предложения, или слова с "ич" или "вна".
    Ответ написан
    1 комментарий