Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как сохранять большие тексты при частых, но незначительных изменениях?

Лучший ответ:
1. Для создания дельты изменений в чем бы то ни было (в тексте, или в бинарных данных и т.п.) есть утилиты/алгоритмы, уже готовые. Можете взять их и адаптировать под себя, например diff. Как это будет реализовано на уровне JS'а в браузере я пока не очень представляю, но гипотетически - это вполне возможно/реализуемо.Как решить эту проблему? Возможно ли частичное обновление поля в MySQL
Частичное обновление файла возможно только в том случае, если кол-во измененных данных равно кол-ву данных оригинала, т.е. нельзя открыть файл и вставить что-то в его середину, можно перезаписать кусок данных ровно такой же по длине как был до этого. В противном случае, файл будет либо перезаписан с того места, где было изменение, либо перезаписан целиком. Это не зависит от базы, это простая арифметика.
Судя по контексту эпитета выше - это проблема не базы, а медленного интернета конкретного пользователя. А так же, какие-то серьёзные ошибки архитектуры. Каким образом пользователи умудряются прислать половину запроса - я не очень представляю, такое даже в "лабораторных условиях" довольно не просто сэмитировать, не говоря уже о том, что бы подобное повторялось многократно. Но если уж у Вас запросы как-то кусками умудряются приходить - ставьте в конце запроса какой-то маркер, который не сможет воспроизвести пользователь, например, какой-то бинарный символ, который будет говорить о том, что это конец сообщения. Если его нет - выдавать пользователю сообщение, что всё очень и очень плохо... Как выявить частичные изменения, чтобы не гонять весь текст целиком, а только внесённые изменения? Поделитесь опытом.Ответ на этот вопрос содержится в 1-м абзаце, выше по тексту :)Кроме того, как только пользователей станет много, подозреваю, сервер ляжет. Довольно странно будет, если у Вас база ляжет от такой нагрузки... Это скорее больше похоже, опять таки, на серьёзные ошибки в архитектуре, а не проблемы БД/сервера как таковых.

Худший ответ:
Имхо редис + база, все что набирается хранится в клиенте, отсылается порциями на сервер с указанием что с какой позиции набиралось, из редиса вытаскивается текст, вставляется в нужные позиции, после чего сейвится обратно в редис, раз в эн минут все хреначится в базу, при отсутствии изменений в базу писать не нужно, проверяется хешем текста.
Вопрос: Чем восстановить отформатированный диск Linux?

Лучший ответ:
узайте rstudio под винду

Худший ответ:
Под Linux мало что полезного найдёте под такую задачу. Советую Runtime GetDataBack for NTFS под виндой.
Вопрос: Почему так много памяти сьедает словарь?

Лучший ответ:
откройте для себя memcached или redis
оно будет, конечно, помедленней, но избавит от необходимости хранить кучу хрени в рентайме и потери данных при креше приложения
redis сохранит данные и в случае перезапуска сервака

Худший ответ:
Возможно это оффтоп, а может и причина болезни, но Это просто жесть)//parse
rw := &sync.RWMutex{}
  if u.Host == "" {
    rw.RLock()
    u.Host = Host
    rw.RUnlock()
А это нормально? С трудом понимаю что здесь, но кажется внутри замыкание лишнее.go func() {
      for {
        msg := <-queueParseUrlHtml
        go func() { // <--------
Вопрос: Можно ли установить одновременно Visual Studio 2017 и Visual Studio 2015?

Лучший ответ:
Да запросто, плагины нужно будет переустановить, а в остальном переезд безболезненный

Худший ответ:
Пользуюсь обеими версиями на одной машине одновременно со времени выхода релизной VS2017
Вопрос: Как создать общее свойство для двух классов?

Лучший ответ:
Создать класс:class Entity {
   public double X = 0;
   public double Y = 0;
   public double Z = 0;
}

class Element : Entity {
  public string color = "red";
}

class Room : Entity {
  public List<Element> objects;
  public void Add(Element obj) {
    objects.Add(obj);
  }
}

class Door : Element{
  public string style = "modern";
}

class Window : Element{
  public string material = "wood";
}

Room room = new Room();

room.Add(new Door());
room.Add(new Window());

Худший ответ:
Если я правильно понял, то можно сделать класс Element, который будет содержать свойства width, height, lengthy. 
От этого класса отнаследовать класс Room и добавить List Elements
Вопрос: Как реализовать вложенные категории Ruby on Rails?

Лучший ответ:
3 модели: категории, подкатегории, итемы. У категории может быть много (has_many) подкатегорий, у подкатегорий много итемов. На каждую модель свои права.

Худший ответ:
гем ancestry . Много  моделек не удобно
у пользовтелей на создание подкатегории отдельный контроллер, на него легко повесить канкан. Там же на всякий случай рейзишь ошибку если с формы не пришел parent_id.
В форме делаешь селект без пустого значения, или в хидден поле засовываешь категорию или он придет из nested routes. Это уже зависит от интерфейса
Вопрос: Как проверить был ли клик хоть на какую-нибудь кнопку?

Лучший ответ:
Заводите переменную isClicked = false. При клике на любую из кнопок меняете ее на true. По окончании прокрутки проверяете значение.

Худший ответ:
На последнюю кнопку навесить событие открытия модального окна, а на все кнопки которые не стоит нажимать событие по которому удаляется событие для открытия модального окна
Вопрос: Как верстать чтобы код не был похож на кашу?

Лучший ответ:
Я не гуру верстки, поначалу тоже была такая проблема, я решаю ее двумя способами:
- каждую секцию(блок) сайта я отделяю отступом с комментарием, это делаю как в html. так и в сss, так намного легче найти где что есть. Комментарии зеленым отмечаются и потому хорошо видно где какой блок, я вообще то комментариев не жалею, и выглядит оно по-людски и читабельно, а не все в одну кучу. 
- даю осмысленные названия классов, да как сказали выше можно использовать БЭМ, лично я себе придумываю свои классы, но их логика понятная и простая, напр. service-container, service-cards, card-title, card-content, то есть слова "контейнер", "тайтл", "контент всегда повторяются в верстке, меняется только название секции.
И еще к тому же перед началом верстки я прохожусь по макету и в начале стилей выношу классы со стандартнимы стилями заголовков, абзацев, ссылок, чтоб избежать повторения кода, в итоге цсс-кода становиться намного меньше и в нем легше разобраться. И в общем не отчаивайтесь это в принципе нормально, что Вы открываете файлы для правок и сначала сложно разобраться. потому что забывается как это версталось, у меня тоже так. я перед тем как внести правки сначала 5 минут изучаю структуру блока. так Вы сведете к минимуму съежание блоков. Ну и про отступы от левого края тоже не забывайте, это важно, их не зря придумали)

Худший ответ:
Как в популярных классических фреймфорках. Twitter Bootstrap, Uikit и т.п.
Вопрос: Какие хорошие книги/видео по opencart?

Лучший ответ:
Ты не поверишь, php.net
И смысл даже не в том, что тебе не нужна литература по Опенкарт, а то, что понимая как работают:
- база
- обьекты
- mvc
- шаблонизатор
Ты можешь писать на OC все что пожелаешь.
Если ты залезешь в базу - то имена таблиц подскажут что там лежит. По каждому имени таблицы можно спрашивать у поисковой системы - не всегда, но ответ можно получить
Объекты знать придется, это совсем не сложно.
MVC у опенкарта неплохой, но шаблоны нарушают все возможные правила, поэтому с ним можно работать только изменяя готовый шаблон, чтобы написать свой - можно съесть себе мозги, ибо 90% всех действий в алгоритме происходят по жестко прописанному сценарию. Начнешь менять - что-то зацепишь.

Худший ответ:
Натяжка везде +/- одинаковая: или используют шаблонизатор (smarty) или просто цикл в PHP, как в opencart. Открываете дефолтную тему и смотрите как оно устроено. OpenCart работает по типу MVC , т.е. в папке catalog/model - формируется модель данных, в папке catalog/controller - манипуляции с данными из модели, и в catalog/view - их внешний вид.
Вопрос: Как вы предпочитаете отправлять результат тестового задания работодателю?

Лучший ответ:
Обычно все архивом отправляют, но почему бы и не "засорить" свой github ради работы (если она Вам действительно интересна)?! 
Так Вы еще покажите, что хотя бы имеете аккаунт на github и начальные навыки работы с ним. 
После проверки задания репозиторий можно удалить.

Худший ответ:
Если работодатель не уточняет - шлите ссылку на облако
Вопрос: Какой тип маршрутизации в Symfony лучше использовать?

Лучший ответ:
Если у вас большое количество роутов, используйте yaml - так они будут собраны в одном месте и наглядны. Более простой и быстрый способ - аннотации, но они при большом количестве роутов могут путать.
Подробнее можно почитать здесь 
а здесь посмотреть на английскомИ документация

Худший ответ:
Просуммирую сказанное в комментариях:
Плюсы аннотаций:можно быстро писать код, прототипировать (особенно если используете сниппеты), т.к. и описание маршрута и код находятся в одном месте.
Минусы аннотаций:Невозможно "окинуть взгядом" (в YAML это проще);Иногда (очень редко) из-за них нужно менять порядок следования action-методов в контроллере т.к. нужно чтобы какой-то маршрут  "срабатывал раньше".
Стоит отметить, что по возможностям и аннотации и yaml -одинаковы.
Вопрос: Как правильно настроить сервер удаленных рабочих столов?

Лучший ответ:
1. Вводите сервер в домен
2. Вам надо будет добавить роли "службы удаленных рабочих столов" в менеджере серверов буквально по мастеру можно пройтись.
3. После добавления служб удаленных рабочих столов у вас по умолчанию одновременно максимально смогут работать только 2 ЛОКАЛЬНЫХ администраторов. Соответственно вам нужно будет в "панели управления/ администрирование/службы удаленных рабочих столов" активировать лицензии "RDS CAL" они должны соответствовать количеству максимально подключаемых пользователей на терминальный сервер одновременно. Эти лицензии соотвественно покупаются и лицензируются отдельно от самого Windows Server. Когда покупаете лицензии учтите что вам надо будет выбрать "на пользователя" либо "на устройство"
4. Далее советую настроить ( хотя сам еще не настраивал из-за не очень большой гибкости этого механизма) отключение пользователей, которые закрыли RDS сессию, но не завершили её оставляя внутри сессии запущенные программы. По той же схеме можно завершать и не активные сессии, то есть те сессии которые не отключены, но пользователь не пользуется ей долго, например отошел на 2-3 часа оставив окно RDS сессии открытым.
5. Далее соотвественно ставите ПО на терминальный сервер. Учтите что всякое ПО от Microsoft если оно не уровня "Корпоративный" при виде что вы его ставите на терминальный сервер ОС Windows выдаст ошибку и не даст его использовать из-за лицензионного ограничения. Соответственно вам нужно покупать отдельные пакеты ПО которые предназначены именно для использования на терминальном сервере. Например к такому ПО относится MS Office. Я на этом пункте споткнулся в свое время и убил много времени на понимание почему не работает тот же MS Office Prof на моем терминальном сервере. Мне не хотелось покупать Corp и я заменил на LIbreOffice.

Худший ответ:
приблизительно так https://4admin.info/терминальный-доступ-пользователя/
Вопрос: Можно ли штатными средствами битрикс добавить несколько торговых предложений в корзину?

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

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

Лучший ответ:
Через JS такое можно сделать. Нужно высчитать средний цвет картинки (например вот jsfiddle.net/xLF38/818 ) и используя этот цвет, создать градиент по альфа каналу.
UPD: Вот примерsnippet

Худший ответ:
Как делать такие условные заголовки?
Вопрос: Как сделать чтоб https не блокировал подгрузку внешних скриптов на сайте?

Лучший ответ:
Я на более чем 100% уверен, что вы можете просто поменять протокол у загружаемых скриптов вручную. Чтобы такого не было, я всегда пишу<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
а не<script src="http//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

Худший ответ:
Nginx proxy_pass и подключать по локальному адресу.
Или выкачать его на свой сервер к своим ресурсам
Вопрос: Хранение всех venv в одной папке на диске?

Лучший ответ:
https://virtualenvwrapper.readthedocs.io/en/latest/sudo apt install virtualenvwrapper
Дело привычки

Худший ответ:
Virtualenvwrapper - это прошлый век. Для управления виртуальными средами Python используйте pipenv, он таки удобнее.
Также рекомендую установить "рыбу" (терминал с автодополнением) fish, а чтобы при переходе в папку проекта - автоматически активировалась среда, то поверх еще поставить fish-pipenv.
Если рыба - не ваш случай - то для того, чтобы мониторить и прыгать между виртуальными средами созданными с помощью pipenv (по умолчанию они лежат все в одной папке) можно юзать pipes. 
Pipes можно не использовать и настроить pipenv на автоматическое создание .venv внутри проекта, если в стартовые настройки консоли добавить export PIPENV_VENV_IN_PROJECT=1.
Вопрос: Как сделать чтобы картинка была слева, а текст был справа от картинки?

Лучший ответ:
картинке дайте float:left

Худший ответ:
Если без css, то так)<p><img src="images/sample.gif" width="100" height="200" alt="Иллюстрация" align="left" vspace="5" hspace="5">
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh 
  euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim 
  ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl 
  ut aliquip ex ea commodo consequat.</p>
Вопрос: XenDesktop Как синхронизировать язык ввода между Mac и Windows?

Лучший ответ:
Тоже боролась с проблемой хоткеев при русской раскладке, в итоге остановилась на таком варианте (Но на Win10, не знаю получится ли на Win7):

Нужно настроить на удаленной винде переключение языка вместо переключения раскладки.
Пойти:  все параметры -> дополнительные параметры клавиатуры -> сочетания клавиш для языков ввода -> сменить сочетания клавиш -> поставить ctrl + shift на смену языка, а не смену раскладки.
После этого нужно переключать язык именно в винде сочетанием ctrl + shift. (Или command + shift)  На маке должна стоять всегда Eng.

Это не синхронизирует язык между macos\win, но позволяет нормально работать с хоткеями в винде на обоих языках

Худший ответ:
вот это не помагает? https://securelink.net/en-be/insights/citrix-recei...
Вопрос: Почему падает скорость ssd macbook pro?

Лучший ответ:
Суть - в тесте blackmagic disk speed test на первом цикле скорость заявленнаяЭто нормально.
Вот у меня на машине заявленная скорость -180км/ч.
И тем не менее когда я смотрю на спидометр, обычно он показывает 40-90км/ч. но зная то, что скорость не максимальная, напрягаетЕсли спидометр у машины до 180, а едете вы по городу 40 разве это вас это напрягает? Всегда предпочитаете держать скорость на максимуме?

Худший ответ:
Там скорее SLC кэш память обеспечивает быструю запись, но и она потом заканчивается и начинает писать в саму память и уже по медленнее (Тут можешь прочитать подробнее https://zen.yandex.ru/media/id/5b24f1e5b5b89100a8b...
Либо как вариант перегрев, и как итог падение скорости
Вопрос: Лучшие биографии разработчиков?

Лучший ответ:
У всех разный путь. Общее у многих одно - все вкалывали как папы Карло, но с умом.

Худший ответ:
Наверное, это немного не в тему, но все же интересная статья и кстати потом можете читать биографию о человеках которые вам больше всего понравились)
Вопрос: Directory.GetFiles(path); почему не видит exe?

Лучший ответ:
код и контент папки в студию!лично у меня все показываетusing System;
using System.IO;

namespace DirExe
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (var f in Directory.GetFiles(@"c:\users\user\desktop"))
            {
                Console.WriteLine(f);
            };
            foreach (var f in Directory.GetFiles(@"c:\windows"))
            {
                Console.WriteLine(f);
            };
        }
    }
}выхлопc:\users\user\desktop\Aida64.lnk
c:\users\user\desktop\Autoruns64.lnk
c:\users\user\desktop\desktop.ini
c:\users\user\desktop\DiskInfo64.lnk
c:\users\user\desktop\DiskMark64.lnk
c:\users\user\desktop\Far32.lnk
c:\users\user\desktop\ff.#.lnk
c:\users\user\desktop\ff.$nake.lnk
c:\users\user\desktop\ff.0.lnk
c:\users\user\desktop\ff.1.lnk
c:\users\user\desktop\ff.2.lnk
c:\users\user\desktop\ff.3.lnk
c:\users\user\desktop\ff.4.lnk
c:\users\user\desktop\ff.5.lnk
c:\users\user\desktop\ff.6.lnk
c:\users\user\desktop\ff.7.lnk
c:\users\user\desktop\ff.azure.lnk
c:\users\user\desktop\ff.body.lnk
c:\users\user\desktop\ff.game.lnk
c:\users\user\desktop\ff.lex.lnk
c:\users\user\desktop\ff.m$.net.lnk
c:\users\user\desktop\ff.net-war.lnk
c:\users\user\desktop\ff.neuro.lnk
c:\users\user\desktop\ff.rss-0.lnk
c:\users\user\desktop\ff.rss-1.lnk
c:\users\user\desktop\ff.rss-2.lnk
c:\users\user\desktop\ff.rss-3.lnk
c:\users\user\desktop\ff.rss-4.lnk
c:\users\user\desktop\ff.rss-5.lnk
c:\users\user\desktop\ff.rss-6.lnk
c:\users\user\desktop\ff.rss.lnk
c:\users\user\desktop\ff.skt.lnk
c:\users\user\desktop\ff.sql.lnk
c:\users\user\desktop\ff.w.lnk
c:\users\user\desktop\ff.x.lnk
c:\users\user\desktop\ff.z.g.p.lnk
c:\users\user\desktop\ff.z.s.s.lnk
c:\users\user\desktop\ff.?.lnk
c:\users\user\desktop\ff.?.lnk
c:\users\user\desktop\HDDScan.lnk
c:\users\user\desktop\HxD64.lnk
c:\users\user\desktop\KeePassXC.lnk
c:\users\user\desktop\rufus.lnk
c:\users\user\desktop\Scanner.lnk
c:\users\user\desktop\ShareX.lnk
c:\users\user\desktop\test.pdf
c:\users\user\desktop\TV.lnk
c:\users\user\desktop\uCalendar.lnk
c:\users\user\desktop\UWT4.lnk
c:\users\user\desktop\WatchMe.lnk
c:\users\user\desktop\Wire.lnk
c:\users\user\desktop\WSU18x64.lnk
c:\windows\bfsvc.exe
c:\windows\bootstat.dat
c:\windows\DtcInstall.log
c:\windows\EnterpriseS.xml
c:\windows\explorer.exe
c:\windows\HelpPane.exe
c:\windows\hh.exe
c:\windows\KB909394.log
c:\windows\lsasetup.log
c:\windows\mib.bin
c:\windows\notepad.exe
c:\windows\PFRO.log
c:\windows\regedit.exe
c:\windows\setupact.log
c:\windows\setuperr.log
c:\windows\splwow64.exe
c:\windows\system.ini
c:\windows\twain_32.dll
c:\windows\win.ini
c:\windows\WindowsShell.Manifest
c:\windows\WindowsUpdate.log
c:\windows\winhlp32.exe
c:\windows\WMSysPr9.prx
c:\windows\write.exe

Худший ответ:
Всем спасибо, уже разобрался (кому интересно в чем была ошибка: как бы странно это не звучало файл который не отражался не имел никакого формата хотя был ярлыком на exe)
Вопрос: Как создать событие, когда пользователь закончил редактирование input'а во vue.js?

Лучший ответ:
Используйте не @input а @change

Худший ответ:
Вот тут можешь посмотреть пример кода https://github.com/freelaxdeveloper/vue-hubculture...
Внимание наcreated: function () {
    // _.debounce — это функция из lodash, позволяющая ограничить
    // то, насколько часто может выполняться определённая операция.
    // В данном случае мы хотим ограничить частоту обращений к yesno.wtf/api,
    // дожидаясь завершения печати вопроса перед тем как послать ajax-запрос.
    // Чтобы узнать больше о функции _.debounce (и её родственнице _.throttle),
    // см. документацию: https://lodash.com/docs#debounce
    this.debouncedGetAnswer = _.debounce(this.getAnswer, 500)
  },
Вопрос: Как запустить web driver chrome без открытия окна броузера(т.е. фоном)?

Лучший ответ:
Вообще Selenium вроде как больше для тестирования. Посмотрите Scrapy.

Худший ответ:
Вообщем порывшись изрядно в интернете я понял что, пока что, запустить Chrome c Selenium в режиме headless(то есть фоном) на Mac OS невозможно, но скоро такая возможность появится. Та жа история с Firefox. Ставлю Ubuntu для тестов.
Вопрос: Как понять, что учить?

Лучший ответ:
Начни делать интересный тебе проект и учи всё, что понадобится по мере его создания.

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

Лучший ответ:
да, нужно использовать  middleware, группировки роутов по необходимости Видео курс Authentication with Slim 3

Худший ответ:
Смотрите, контроллер cabinet должен наследовать базовый контроллер, получите в базовом контроллере роут нужный и сделайте проверку что-то вроде. А точнее смотрите документацию своего фрейморка) Или подождите ответа того кто разбирался в SLIMif(Auth::check() == false && $route['controller'] != 'Login'){
      redirect('/admin/login/'); die;
}
Вопрос: Как запретить на сайте нажатие CTRL+SHIFT+I и F12?

Лучший ответ:
Задайтесь вопросом... Кому нужен код? Простому пользователю он ни к чему, он даже не знает, что это такое. А тот кому он нужен, тот в любом случае найдет как его взять.

Худший ответ:
Для контрола и шифта - свои свойства объекта event, они проверяются через них, а не через keyCode
Вопрос: Может ли подключенный бот telegram писать сообщения без обращения к нему?

Лучший ответ:
Может

Худший ответ:
Можешь, некоторые так реализуют вместо публичных каналов, или подписку на что то.
Там главное знать чат id и все
Вопрос: Статика или функции?

Лучший ответ:
Глобальное состояние - это плохо. Но вот только вещи типа валидации, обрезки картинок и т.д. не имеют состояния. У вас один вход и один выход.
Потому функций для этого достаточно.
Статику следует использовать тогда, когда вам нужна функция, работающая с объектами одного типа, и когда этой функции нужен доступ к состоянию объекта. Идеальный пример - статические методы фабрики. Ключевой момент - у этих функций нет своего состояния.
Ну и ооочень редко нужно хранить статическое состояние. Например сингелтоны полезны когда вам нужно работать с ком портом и вам смертельно важно что бы небыло ни единой возможности создать два экземпляра класса для работы с оным.

Худший ответ:
Если функция атомарна и не имеет зависимостей от других функций \ классов \ внешних переменных, а также может вызываться многократно за один цикл выполнения, то можно использовать ее. Наглядный пример - простая обрезка картинок, либо форматирование текста.
Если функция имеет зависимости, либо слишком большая (это может привести к ее разбиению на несколько функций в будущем), а также не должна выполняться более одного раза за цикл выполнения, то лучше использовать класс с методами, возможно - синглтон. Наглядный пример - управление подключением к базе данных, когда нам нужно не допустить повторного вызова данного метода.
И как по мне, нет ничего страшного в создании объекта, пусть даже и для единоразового действия.