Задать вопрос
  • Поможет ли переустановка Windows при bad блоках на жестком диске?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Нет, не поможет убрать. А вот шанс на запуск системы после переустановки есть. Имеет смысл только если надо забрать с диска важные данные, но другого диска/ПК нет под рукой. Но все же лучше подключить к другому ПК и скачать нужное. Использовать дальше диск смысла нет - просто меняйте диск, ибо дальше будет только хуже. Можно, конечно, пройтись викторией и сделать ремап бэдов, но опять же имеет смысл разве что для вытаскивания данных.
    Ответ написан
    1 комментарий
  • Поможет ли переустановка Windows при bad блоках на жестком диске?

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Для того, чтобы просканить интернет, нужно для начала иметь список интернет-сайтов и страниц на них. Это уже огромный объём информации, которую поисковики накапливали годами и поддерживают в актуальном состоянии.

    Но даже если такой список есть - по нему ещё надо пройтись. Потратив уйму времени на скачивания этих миллиардов страниц. И возможно в итоге получить 0 результатов. А на следующий запрос начинать скачивать всё то же самое заново повторно.

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

    А искать по всему интернету в личных целях могут только настоящие поисковики. Ну вот можно разве пытаться их результаты обрабатывать и фильтровать, но это уже не будет поиск своими силами.
    Ответ написан
    1 комментарий
  • Персональный гугл, если ли?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Google - это прежде всего инфраструктура, а не софт. Как только сможете позволить себе потратить десятки миллиардов долларов на постройку ЦОДов, можно и персональный Google будет завести.
    Ответ написан
    3 комментария
  • Персональный гугл, если ли?

    Daemon23RUS
    @Daemon23RUS
    Краулер, который ходит по интернетам и ищет сам, то о чём я его попросил

    Боюсь, что ответ Вашего частного поисковика придется долго ждать. Обратимся к цифрам: сейчас порядка 2 млрд. сайтов ( обратите внимание на то что это сайты, а не страницы, коих на многих сайтах десятки, сотни, тысячи а на части на порядки больше) предположим, что ваш краулер пожирает сайты по 10 шт в секунду (со всеми страницами), так вот ждать ответа придется лет 7.
    И это мы опустили трафик, который сожрет краулер. А там все за гранью не то что домашнего сервера, а не все страны потребляют такой объем.
    P.S. Тут вопрос не в алгоритмах или коде, вопрос в объеме "перевариваемой" информации
    Ответ написан
    3 комментария
  • Названия в классов: я могу раздавать их рандомно или есть некая традиция, игнорирование которой считается плохим тоном?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега CSS
    В программировании есть традиция давать сущностям понятные имена.

    При этом, что такое "понятное имя", каждая команда договаривается самостоятельно. Кто-то пишет только на грамотном английском, кто-то использует колхозную транслитерацию. Один и тот же элемент на разных проектах может называться по-разному, потому что у них разная предметная область (например, menu/navigation). И так далее.

    Дополнительно, существуют и схемы наименования, самая популярная - БЭМ.

    С точки зрения же механики, браузеру совершенно всё равно, что написано у вас в классах (за исключением небольших технических ограничений, описанных в спецификации).
    Ответ написан
    Комментировать
  • Чем отличаются сетевые коммутаторы?

    @asmelnik
    Если вам 1 штуку повесить на стену дома или в офисе - практически никакой.
    Если вам закупить горку железа на пару десятков миллионов с договорами обслуживания и обязательствами замены в течении суток - HP до санкций выигрывал.
    Как-то так.
    Ответ написан
    5 комментариев
  • Какой специалист мне нужен?

    Deita
    @Deita
    Бизнес-аналитик
    Ответ написан
    Комментировать
  • Какой специалист мне нужен?

    newross
    @newross
    Product owner
    Бизнес-аналитик либо продакт.
    Желательно знакомого с вашей предметной областью и аудиторией.
    Чего точно не стоит делать, так это делегировать принятие решений разработчикам. А то получите красивый код, оторванный от бизнеса
    Ответ написан
    Комментировать
  • Как запретить скачивание/запуск исполняемых файлов и все сайты с онлайн играми?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Жил да был черный кот за углом...
    Как обычно.

    Файрволлом баним все запросы наружу.
    Прокси делаем доступ к тому, куда надо и баним туда, куда не надо. Поскольку сейчас все сайты по https - потребуется бампинг.
    Ответ написан
  • Как запретить скачивание/запуск исполняемых файлов и все сайты с онлайн играми?

    @Drno
    Можете установить прокси и на нем запретить всё, кроме нужных сайтов.
    Например squid или 3proxy
    Ответ написан
  • Как по ВПН соединить две сети с одинаковым поддиапазоном 192.168.0.1/24?

    ValdikSS
    @ValdikSS
    С OpenVPN это сделать сравнительно легко — у него имеется встроенное средство переназначения сетей.

    --client-nat args
            This pushable client option sets up a stateless one-to-one NAT rule on packet addresses (not ports), and is useful in cases where routes or ifconfig settings pushed to the  client  would
            create an IP numbering conflict.
    
            Examples:
    
                client-nat snat 192.168.0.0/255.255.0.0
                client-nat dnat 10.64.0.0/255.255.0.0
    
            network/netmask  (for  example  192.168.0.0/255.255.0.0) defines the local view of a resource from the client perspective, while alias/netmask (for example 10.64.0.0/255.255.0.0) defines
            the remote view from the server perspective.
    
            Use snat (source NAT) for resources owned by the client and dnat (destination NAT) for remote resources.
    
            Set --verb 6 for debugging info showing the transformation of src/dest addresses in packets.


    А с другими типами — использовать ядерное переназначение через iptables/nftables: DNAT/SNAT, NETMAP.
    Ответ написан
    Комментировать
  • Почему FireFox может скачать некий файл по https, а моя программа не может?

    @devian3000
    Ну можно сказать что доступ закрыт)
    Если все заголовки скопированы включая Authorization то можно предположить что при генерации страницы для скачивания файла генерится ключ авторизации, скорее всего уникальный на каждую сессию. это легко проверить посмотрев на ссылки, если там меняется какой-то набор символов значит ключ находиться в самом url.

    Второй вариант - проверка на ботов. тут сложнее, надо разбирать конкретно что где и как не нравится и почему не получается замаскироваться под браузер
    Ответ написан
    4 комментария
  • Как в Windows 8.1 сделать темную тему да так что бы она работала?

    GavriKos
    @GavriKos
    Микропетпроджект - https://home-cloud.store/
    Никак
    Ответ написан
    Комментировать
  • Как организовать систему балансировки нагрузки во время работы доменных пользователей Active Directory?

    hint000
    @hint000
    у админа три руки
    1. Вы пишите, что у вас только один контроллер домена. Второй сервер вы только собираетесь сделать контроллером домена? Делается в два шага: (а) ввести сервер в существующий домен, (б) добавить на нём роль AD DC и объявить его новым контроллером.

    2. Два контроллера домена нужны не для балансировки нагрузки, а для надёжности работы всего домена.

    3. О какой-то нагрузке на контроллер домена можно начинать рассуждать, когда в домене 1000+ пользователей; в этом случае у вас уже будет развитая сетевая инфраструктура, и вы можете два контроллера разместить в двух сайтах (в терминах AD), каждому сайту назначить подсеть, пользователи из определённой подсети будут обслуживаться своим контроллером;
    Но если у вас пользователи распределены территориально и работают в разных подсетях, то даже при малом количестве пользователей есть смысл распределить контроллеры по тому же принципу - не для распределения нагрузки, а для надёжности.
    Ответ написан
    3 комментария
  • Баг Telegram, взлом, слежка?

    ValdikSS
    @ValdikSS
    У вас могли украсть директорию данных Telegram, в этом случае дополнительная сессия не будет отображаться, вы и злоумышленник будете использовать одну сессию.
    Завершите ВСЕ сессии и аутентифицируйтесь с гарантированно чистого устройства заново, с нуля. Если дело действительно в компрометации директории, вам необходимо просканировать компьютеры на вирусы, а лучше переустановить ОС без сохранения данных.
    Ответ написан
    8 комментариев
  • Как изменить права доступа к общей папке?

    morihaos
    @morihaos
    На 99% вопросов уже есть ответы в инетке...
    Привет,
    Дело не в NTFS. Дело в том, что при старте гостевой системы Ubuntu Server общая папка монтируется на уровне ядра по информации из файла /etc/mtab с доступом для root:vвoxsf и разрешениеями rwxrwx---, то есть с ней могут работать root и все юзеры, которые входят в группу vboxsf. Если вы, конечно, поставили гостевые дополнения прилагаемые к виртуалбоксу в консоли Ubuntu Server примонтровав их по /dev/cdrom, а не через apt из репозитория Ubuntu.
    Добавьте себя в эту группу командой:
    sudo usermod -aG vboxsf username
    где username - ваш логин входа на консоль, перелогинтесь в консоли и без проблем сможете писать в свою общую папку.
    Если же ставили как-то нестандартно гостевые дополнения, то смотрите файл /etc/mtab и ищите вашу общую папку в примерно такой строке:
    имя_вашей_шары /media/sf_имя_вашей_шары vboxsf rw,nodev,relatime 0 0
    вот этот vboxsf и есть группа, в которую вам надо себя добавить.
    Еще вариант - проверить, кому принадлежит смонтированная папка и ее разрешения командой:
    ls -al /media
    или, куда у вас она смонтирована автоматом или монтируется руками и посмотреть, кто ее владелец и какая группа юзеров к ней подключена и уже по этой информации добавить себя в эту группу.
    Ответ написан
    Комментировать
  • Как правильно заменить диск в Software RAID??

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    То, что вы подчеркнули красным, это точка монтирования. Два тома в одну точку монтировать нельзя.
    Вам надо отформатировать раздел на новом диске и скопировать на него содержимое папки /boot/efi
    Примерно так:
    sudo mkfs -t vfat /dev/nvme1n1p2
    sudo mount /dev/nvme1n1p2 /mnt
    sudo cp -r /boot/efi /mnt
    sudo umount /mnt
    Ответ написан
    9 комментариев
  • Как ускорить поиск элементов из статичного string[] по подстроке?

    @Degot Автор вопроса
    Я сравнил несколько вариантов: Contains, SqliteFTS, Words. И выбрал реализацию Words.
    Псевдо-C#:
    var strings = new string[]; //25 млн записей
    
    var words = new Dictionary<string,HashSet<int>>();
    //формирование "справочника"
    var str = string.Empty;
    for(var stringId = strings.Length - 1; stringId >= 0; stringId--)
    {
        str = strings[stringId];
        var stringWords = NormalizeString(str).Split(' ');
        foreach(var stringWord in stringWords )
        {
            words[stringWord].Add(stringId);
        }
    }
    
    //поиск
    var searchTermWords= NormilizeString(searchTerm).Split(' ')
    var foundIds = new HashSet<int>();
    foreach(var searchTermWord in searchTermWords)
    {
       foreach(var matchWord in words.Keys.Where(x => x.Contains(searcgTermWord)))
       {
      if (words.TryGetValue(matchWord, out var stringIds))
      {
        if (foundIds  == null)
        {
            foundIds = stringIds;
        }
        else
        {
            foundIds = stringIds.Where(x => foundIds .Contains(x)).ToHashSet();
        }
     }
     else
     {
         foundIds  = null;
     }
    }
    }
    
    Console.WriteLine($"Найдено строк: {foundIds.Count} ");


    Тесты разных вариантов для списка объектов с 4мя строковыми полями:
    Поиск: 100 циклов поиска 1-3 символьной подстроки по одному полю
    
    records: ~5 000 000
    
    TestContains (ms):
      -> Max: 434, Avg: 295.56, Median: 281
    
    TestSqliteFTS (ms):
      CREATE -> 111
      INSERT DATA -> 34697 //INSERT INTO temp_table(object_id, поле0, поле1, поле2,  поле3)
      INSERT INDEX -> 161683 // INSERT INTO fts_index(object_id, поле0, поле1, поле2,  поле3 ) SELECT * FROM temp_table
      DROP DATA -> 1191
      VACUUM -> 15849
    
      -> sqlite.db (FTS5: 1.6GB, tokenize = 'trigram', content='',columnsize=0, detail='column')
      -> Max: 10, Avg: 1.16, Median: 0
      
    TestWords (ms):
      CREATE -> 89
      INSERT DATA -> 98851 //INSERT INTO temp_table(word_id, object_id)
      AGGREGATE DATA -> 28504 //SELET object_id FROM temp_table WHERE @word_id  -> FastPFor -> INSERT word_id, object_ids_as_bytes
      DROP DATA -> 1360
      CREATE INDICES-> 9
      VACUUM -> 262
    
      -> sqlite.db (CUSTOM: 9.5MB, (tbl: fields -> id, value), (tbl: words -> id, field_id, value), (tbl: data -> word_id INTEGER, integersQty INTEGER, bytes BLOB))
      -> Max: 128, Avg: 18.78, Median: 1
      
      Статы:
        field_id    wordsQty   maxRefsQty  avgRefsQty  maxRefsBytes    avgRefsBytes
        0           24075	    6461929	    271         910000          52
        1	        5339	    23858735	4515	    3336816         667
        2       	3602	    6766040     1913        952808          295
        3	        11825	    7595099     744         1069508         123
    
    
    records: ~25 000 000
    
    TestContains (ms):
      -> Max: 2568, Avg: 1524.47, Median: 1437.5
    
    TestSqliteFTS (ms):
      CREATE -> 135
      INSERT DATA -> 255882 //INSERT INTO temp_table(object_id, поле0, поле1, поле2,  поле3)
      INSERT INDEX -> 1022499 // INSERT INTO fts_index(object_id, поле0, поле1, поле2,  поле3 ) SELECT * FROM temp_table
      DROP DATA -> 370118
      VACUUM -> 1230845
      
      -> sqlite.db (FTS5: 8.1GB, tokenize = 'trigram', content='',columnsize=0, detail='column')
      -> Max: 587, Avg: 11.53, Median: 0
    
    TestWords (ms):
      CREATE -> 107
      INSERT DATA -> 581050 //INSERT INTO temp_table(word_id, object_id)
      AGGREGATE DATA -> 132700 //SELET object_id FROM temp_table WHERE @word_id  -> FastPFor -> INSERT word_id, object_ids_as_bytes
      DROP DATA -> 6855
      CREATE INDICES-> 32
      VACUUM -> 1161
    
      -> sqlite.db (CUSTOM: 35MB, (tbl: fields -> id, value), (tbl: words -> id, field_id, value), (tbl: data -> word_id INTEGER, integersQty INTEGER, bytes BLOB))
      -> Max: 492, Avg: 64,87, Median: 1
      
      Статы:
        field_id    wordsQty   maxRefsQty  avgRefsQty  maxRefsBytes    avgRefsBytes    
        0       	24075	    32570729	1355        4586324         205
        1	        5339	    120257135	22577       16818780        3192
        2	        3602	    34103240	9566        4802092         1372
        3	        11825	    38282299	3723        5390372         542


    P.S. После тестирования FastPFor, WAH, RoamingBitmap и LZO для хранения индексов (слово -> индекс строки[]) остановился на Delta + LZO. Итоговый размер индекса: 17MB. Максимальное время поиска 600ms, среднее 7ms.
    Ответ написан
  • Монитор fullHD 17-19 дюймов, существуют ли?

    @alexalexes
    Действительно, сегмент малых мониторов с FullHD сейчас занимают только сенсорники.
    В качестве исключения можно найти отдельных китайцев, но это исключение из правил, например:
    https://market.yandex.ru/product--monitor-carcam-l...
    Ответ написан
    Комментировать