Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какую выбрать книгу для изучения JavaScript?

Лучший ответ:
Дам совет от себя, как новичка от мира JS.
Могу посоветовать не книги, а скорее решение математических задач. :)
Прям берем любой вопрос, от простого до сложного и решаем, желательно разными методами:
Сортировки, факториалы, площади, матрицы, что угодно, в порядке усложнения.
Т.е. нужно сперва заставить себя мыслить на языке (тут очень неплохо подходит такое объяснение: ты хорошо знаешь иностранный язык, когда ты мыслишь на этом языке непроизвольно) и как можно больше писать, обращать внимание на суть написанного, а не искать "а где же тут { закрывается".
Брать хорошие и интересные решения других людей и разбирать их, научиться читать код и вникать в то, что он означает.
И самое главное ни в коем случае не читать книг по типу "построй свой отзывчивый сайт", "как создать интернет-магазин" и прочий мусор от мира компьютерной литературы. Уметь программировать !== знанию отдельных инструментов одного конкретного языка.
Ставим себе задачу: я хочу сделать так, чтобы весь текст на страничке после "." разбивался на абзацы. Пытаемся решить самостоятельно, гуглим, вникаем в решение других (если не получилось самому), пытаемся изменить задачу и решить самостоятельно. Решили задачу - едем дальше, ставим новую.
Этот процесс даст очень много понимания в начале пути, а потом можно уже и Флэнаганов читать, подправлять знания в правильное русло.
Так же неплохо найти ментора с опытом, который будет исправлять ошибки (т.к. это основная проблема самостоятельного обучения - можно научиться делать не только правильно, но и неправильно).
А, ну и побольше математики, правда. Решение математических задач обусловлено строгой логикой, это очень помогает! Вспоминаем (например) как искать площадь треугольника сперва на бумаге, потом пишем это в IDE.
Это более долгий путь, но как по мне, так он более основательный.

Худший ответ:
И все вроде бы хорошо, но там бывают некоторые пробелы в материалах...
а можно примеры таких пробелов?
Вопрос: Визитки для веб-разработчика?

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

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

Лучший ответ:
Попробуйте детскую литературу, она простым языком написана. Я Гарри Поттера читал. Еще мне рекомендовали Агату Кристи, но я не пробовал.

Худший ответ:
Я начинал с Holes (Sachar) - очень простой язык. Потом были Хроники Нарнии (первая книга), The Secret Garden (Burnett), The Giver (Lowry) и Tunnel in the sky (самая понравившаяся, аля про Робинзонов будущего) и Time for the Stars (Хайлайн), т.е. книги для юношеского возраста. Параллельно желательно качать аудио-навык, чтобы читать слова правильно. Я для этого подкаст про Гражданскую Войну от VOA прослушал (начитаны замедленно), потом читал-слушал Ender's Game (Орсон) первую книгу. Когда уже немного освоился, то аудио теперь стараюсь слушать без текста - хорошо зашла Мифология (Асприна) первые три книги, а потом сменился чтец и Ааз стал уже не тем.
Пробовал читать "Хроники Амбера" (Нортон), одолел пару книг и слился. Язык своеобразен, весьма поэтичен (в русском переводе я этого не чувствовал), но из-за это повествование какое то невнятное. И "On Writing" (Кинг) - по сути автобиография Кинга о том, как он докатился до того что стал писателем. Местами сложновато и скучновато, но фанатам должно зайти.
Недавно дочитал The Godfather (Пьюзо). Достаточно простой английский, немного американского сленга. Фильм с моей точки зрения значительно лучше (сценарий писал Пьюзо, так что это как вторая версия).
Сейчас начал читать The Name Of The Wind (Rothfuss) на пробу. Вроде особых проблем нет.
Для чтения использую телефон-лопату + Cool Reader + GoldenDict со словарем Миллера и (обязательно!) "словарем" озвучки.
P.S. Уровень английского у меня совсем так себе. На данный момент учу четыре месяца, уровень Intermediate надеюсь.
Вопрос: Как лучше организовать файловый сервер на роутере?

Лучший ответ:
D-Link DSL-2650U
ахахахахаха, выкинь это говно, купи комп за ~5тр и свич 8 портовый за 1000р, воткни вторую сетевуху и поставь линух, и роутер нормальный будет и файлопомойка

Худший ответ:
Такой себе этот Дно-линк. Действительно, лучше купить небольшую материнку с пассивным охладом и собрать из этого файлопомойку на Linux или FreeBSD. Дмитрий Бачило делал подобное: https://youtube.com/watch?v=EiKafkUcajs
Вопрос: Почему ничего нет при подключении к БД?

Лучший ответ:
Скорее всего у вас PHP7 и проблема в php.net/manual/ru/function.mysql-connect.php
Включите вывод ошибок (или посмотрите логи) и станет все ясно.

Худший ответ:
а че, в пыхе print_r уже отменили?
Вопрос: Можно ли совместить в одном проекте программы написанные на разных языках (C++, C#) в VS2012?

Лучший ответ:
Создаете Solution с двумя проектами, C# Windows Forms и C++ Win32 DLL.
Пишете свой код на C++, делаете dllexport функцию, принимающую, к примеру, void*, куда будут складываться данные.
В C# классе используете Dllimport, через Marshal.AllocHGlobal аллоцируете память, передаете в вызов C++ функции, она что-то там заполняет, потом достаете через Marshal.Copy и работаете с этим дальше

Худший ответ:
можно решить задачу 3мя способами
1) c++ cli
2) P/Invoke
3) Com
Вопрос: Есть ли готовые решения на Yii2 авторизация под пользователем?

Лучший ответ:
По хорошему необходимо разделить на два приложения. В Yii2 даже advanced шаблон под данную архитектуру настроен. Тогда у вас вопроса с auth_key не возникнет, при переходе в разные приложения.
Сделать авторизацию за пользователя легко, просто передать модель User в функцию Yii::$app->user->login($user, 0); Модель Вы можете получить по id в админке. Вопрос только в том, что бы авторизоваться в пользовательском разделе, а не в админке.
Расширения? Я искренне надеюсь, что такое никто не делает. Поскольку это огромная дыра в безопасности Вашего сайта. Все, что Вам нужно, вы должны вынести в админку, а не авторизовать админа под пользователем. Особенно если у Вас имеются приватные данные или имеете отношение с денежными средствами.

Худший ответ:
Добавляешь метод в контроллере который будет перекидывать тебя на фронт с id нужного пользователя.
Во фронте авторизуешься через login как писали выше, и перенаправляешь куда тебе нужно
Вопрос: Откуда тянуть инфу по банкам?

Лучший ответ:
Конкретно по банкам первоисточник в РФ один, это https://www.cbr.ru
По любой организации https://www.cbr.ru/credit/coinfo.asp?id=350000008
за любой месяц https://www.cbr.ru/credit/101.asp?regnum=1000&when...
итд
Если у вас интересный коммерческий проект (вы готовы платить за данные) - можно написать в коммерческий департамент www.banki.ru/info/contacts
У них с 2015 года есть единое API, которое они на неких непубличных условиях открывают.
Возможно это будет дешевле чем парсить cbr.ru

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

Лучший ответ:
Чтобы отзыв исчез вместе со всей историей, можно вернуть все деньги за проект. Если проект небольшой, и деньги не стоят нервов, можно просто плюнуть и расстаться с заработанной копейкой. Конечно, если проект большой, то просто так всё не вернёшь, однако при долгом сотрудничестве отрицательные отзывы — этот скорее исключение из правил: зачем было столько сотрудничать, если фрилансер не удовлетворяет?
Как вариант, можно написать ответ на отзыв, и аргументированно объяснить, в чём была проблема с проектом, и почему всё так плохо.
В те времена, когда средний балл ещё не был заменён на JSS, моя встреча с неадекватным клиентом завершилась отзывом с оценкой 1.0, плюс он ещё в поддержку на меня нажаловался, правда безрезультатно. Так как средний балл заметно портился, то я вернул почти все деньги (вес оценки равен оплате). Так как отзыв был абсолютно бессодержательный, то я написал и свой отзыв, и ответ на его отзыв. А чтобы вечно мозолить клиенту глаза, не вернул последний бакс. Мой-то отзыв он скрыл, но вот пунктик с "10 часов, $1, скрытый комментарий" со ссылкой на мой профиль, где проблемы разобраны по косточкам, — будет висеть в проектах этого клиента вечно. При этом его отзыв на моей странице меня совершенно не пугает.

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

Лучший ответ:
Множество лейблов, которые при наведении делают одно и то же? Не проще ли создать всего один обработчик и на него привязать события со всех нужных лейблов?private void label_MouseEnter(object sender, EventArgs e)
{
   (sender as Label).ForeColor = Color.FromArgb(35, 33, 61);
}

private void label_MouseLeave(object sender, EventArgs e)
{
   (sender as Label).ForeColor = Color.White;
}
Теперь во всех событиях указывает один и тот же обработчик.

Худший ответ:
Вариант 1: использовать лямбда-выражения.
Вариант 2: использовать генератор обработчиковvoid Interactable(Control c)
{
c.MouseEnter+=(s,e)=>s.ForeColor=Color.FromArgb(35, 33, 61);
c.MouseLeave+=(s,e)=>s.ForeColor=Color.White;
}
Вариант 3: применить вариант 2 программно ко всем label'ам, которые каким-то образом помечены в визуальном конструкторе.
Вопрос: Сколько ещё можно добавить ОЗУ?

Лучший ответ:
Проц умеет до 16Гб.
Производитель заявляет что только 8Гб.
Значит есть шанс что заведутся две планки по 8Гб
SSD любой в sata исполнении. В идеале системный диск меняете на SSD, а HDD переносите в optibay

Худший ответ:
Этот ноутбук не сможет задетектить больше 8гб оперативки. Если поставить больше, то он скорее всего затрет адресное пространство выделенное для видяхи и матрица начнет показывать либо просто черный экран, либо чудеса, но никак не показывать то что нужно.
Вопрос: Бесплатное ПО для удалённого управления (Windows)?

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

Худший ответ:
Посмотрите aspia
Вопрос: Как решить проблему с кодировкой UTF-8?

Лучший ответ:
Большое спасибо за отзывчивость и помощь! Проблема оказалась в имени компьютера. Изначально изменял по глупости имя папки, содержащей локальные диски, в результате чего получил фигу.
Если у кого-то такая же проблема возникнет смотрите на имя, которое в панели управления в системе указано. Скорее всего (как вышло у меня) будет к имени пользователя приписано "-ПК", что и выдавало ошибку с кодировкой.

Худший ответ:
Питон в папку C:/Python36, 
в чарме - новый голый проект Джанго, RUN
Вопрос: Достаточно ли только знать основы Javascript, чтобы начать изучать Js-фреймворки?

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

Худший ответ:
Достаточно.
Вопрос: Как сделать push-уведомления на сайт самостоятельно?

Лучший ответ:
без сторонних сервисов - не получится.
варианта два:
1. periodical ajax. Но в этом случае пользователь может получить уведомление не сразу, а когда получит, может быть уже не актуально. 
2. WebSocket - моментальное уведомление. Но нужно поднимать свой Websocket демон.

Худший ответ:
У gitlab есть GitLab CI 
https://about.gitlab.com/gitlab-ci/
https://gitlab.com/gitlab-org/gitlab-ci-multi-runner 
с помощью файла .gitlab-ci.yml
Вопрос: Как вести себя с конкурентами по должности?

Лучший ответ:
Немного пооффтоплю (но реленвантно в рамках "Карьеры"), но идти !тестировщиком! в какую-то очередную унылую снг контору и строить планы чтобы через ДВА-ТРИ года стать каким-то унылым "руководителем" это просто такая нереальная печаль, что мне даже стало интересно как вообще у людей настолько ужасные планы в жизни то появляются. За 2-3 года можно стать норм спецом, свалить из страны и получать в несколько раз больше, чем получает очередной мамкин руководитель отдела в фирме "рога и копыта". И уже потом там, в цивилизации, можно будет легко вырасти до какого-нибудь руководителя, если вы без подобных амбизиций не видите себя в этой жизни.

Худший ответ:
Так как проект новый, в курс дел, предметной области и новой системы меня вводит сотрудник, который работает на проекте не один год. Указанный сотрудник, ведет себя так, как будто он мой непосредственный руководитель:
Так большинство себя и ведет, он же учит тебя! Вспомни когда ты учился в школе/вузе и как вели себя учителя?!- пытается все возникающие мои вопросы, самолично согласовывать с руководством программистами, без моего участия
Войди не много в курс дела и решай вопросы сам с руководством, не нужно за все полностью отчитываться ему.- при непосредственных начальниках, в коридоре часто задает вопросы, да так чтобы это видели начальники.
Таким образом он не то, что тебя хочет унизить при руководстве, а возвышает себя при помощи тебе (не знания области, не хватки опыта).Как вести себя с подобными людьми, которые тоже хотят стать руководителями и стараются себя вести так?
Ты должен быть активным а не размазней о которого ноги вытирают, не просвещать во все свои сложности. Попробуй походи со счастливым лицом недельку (пусть даже через силу), особенно после перекидывания парой слов с начальством в коридоре или выходя из их кабинета, это будет его раздражать и он возможно начнет ошибаться в своих действиях. Твой "учитель" карьерист которому на всех плевать он и нашим и вашим будет льстить. Не нуди, говори кратко и уверено, не просвещай во все свои проблемы (еще раз повторяю).   Займись спортом, подними себе боевой дух )
Вопрос: Что рассказать на занятии о современных методах продвижения сайтов за 3 часа?

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

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

Лучший ответ:
man hier
сначала туда

Худший ответ:
>> Но для обычного пользования по моему идеалом являются мобильные ОС: есть приложение, есть данные и есть возможность простого удаления.
А в десктопном Linux не так? Или вы думаете что у Андроида все в одном месте и по одному файлику на программу?
Вопрос: Как убрать нулевые строки и колонки из двух-мерной матрицы?

Лучший ответ:
list(zip(*filter(any, zip(*filter(any, matrix)))))UPD Вынесу из комментов окончательный вариант:def trim(matrix):
    fltr = lambda matrix: zip(*filter(any, matrix))
    return [list(row) for row in fltr(fltr(matrix))]

matrix = trim(matrix)

Худший ответ:
без сторонних либstart = [
    [0, 4, 0, 1, 0],
    [0, 0, 2, 3, 0],
    [0, 0, 3, 1, 0],
    [0, 0, 0, 0, 0],
]
result = [list(t) for t in zip(*[i for i in zip(*[x for x in start if any(x)]) if any(i)])]
Вопрос: Какой тип матрицы лучше?

Лучший ответ:
Я за IPS. Многие телефоны на  AMOLED используют регулировку яркости через низкочастотный ШИМ, в результате чего при любом движении глазами становится заметен эффект стробоскопа. Меня это серьезно достает :)
Выгорает синий пиксель, проблема имеет место. Видел выгоревший за год телевизор на витрине. Тоже в минусы.
Из плюсов у амоледа идеальный черный, возможность включения только небольшой части экрана для уведомлений или часов, ну и лучшая цветопередача.

Худший ответ:
Я конечно все понимаю, но не стоит из телефона делать Mac с Retina дисплеем. Это телефон ...
Ну и да, не собираюсь менять в течении 3-4 лет по моему утопия.
Вопрос: Как настроить компьютер для публичного доступа?

Лучший ответ:
Разрешить пользователю запуск браузера, и доступ к юзерпрофилю, все остальное запретить.
В настройках DNS прописать 127.0.0.1
IP адрес нужного сайта вписать в hosts.

Худший ответ:
Самый простой вариант в двух словах. 
Ставите линукс, ту же убунту. По умолчанию прописываете домашнюю страницу нужный сайт. 
С помощью фаервола, роутера, iptables (на ОС с убунтой), настраиваете правила:
Разрешить только IP (ip сайта) tcp 80;443 (Не забудьте указать нужные вам порты, для http[s] пример приёвел)
Запретить весь остальной трафик по всем портам исх\вх. 
Профит! Получите комп с доступом только к разрешенному ресурсу.
Вопрос: Как лучше сверстать логотип с точки зрения SEO и Good Practice?

Лучший ответ:
Определенно самым лучшем с точки зрения индексации контентозамещающих элементов и seo
следующий вариант:<a href="#"><img scr="" alt="Название бренда или товара" title="Название бренда или товара"/></a>

Худший ответ:
Сомневаюсь что тег strong акцентирует внимание на логотипе/картинке. Я бы сделал так\<a href="#"><img scr="" alt="company name"/></a>
Вопрос: Допустимо ли вести комментарии на нескольких языках сразу?

Лучший ответ:
Нет, не допустимо

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

Лучший ответ:
<table>
    <tr>
        <td colspan="2"></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td colspan="3" rowspan="2"></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
    </tr>
</table>
Далее стилями подкорректируешь размеры, цвета границ и т.д.

Худший ответ:
<table>
    <tr>
        <td colspan="2"></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td colspan="3" rowspan="2"></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
    </tr>
</table>
Далее стилями подкорректируешь размеры, цвета границ и т.д.
Вопрос: Как правильно организовать мультиязычность сайта?

Лучший ответ:
Symfony Translation
В БД будет необходимо создавать отдельные поля\таблицы под конкретный язык. Переменную локали можете сторить как в урле, так и в сессии и куках. По ссылке все написано.

Худший ответ:
спасибо то что нужно!
Вопрос: Какова веростность коллизии в рандомной строке?

Лучший ответ:
Возможно лучше будет не случайную строку генерить, а последовательные id записей однозначно мапить (см. биекция, bijection) в пространство вашего алфавита. Так 100% не будет коллизий.
Чтобы коды последовательных id не выглядели последовательно, можно, например, реверсировать порядок бит в числе перед записью его новым алфавитом. Это сохранит однозначность отображения.
2 млн. записей укладываются в 20 бит (0 .. 2097151). Алфавит из англ. букв в двух регистрах и цифр состоит из 26+26+10 = 62 символов. Может, ещё пару символов добавить, будет ровно 64 (6 бит). Итого для одного id понадобится всего 4 символа вашего алфавита, и это с избытком: вместо 20 бит, целых 24 будете записывать.

Худший ответ:
Имел опыт, когда 8символьный хеш (0-9a-f) показывал коллизии после 2 миллионов записей в таблице. Расширили до полного алфавита в двух регистрах - проблема ушла.
Вопрос: Как заставить работать скрипт с ошибками без конструкции try { .. } catch(e) { .. }?

Лучший ответ:
Проверяйте, существует ли элемент, который пытаетесь удалить, типа так.

Худший ответ:
Как что делать, добавлять проверки. Исключения ведь вылетают не просто так, а в определённых случаях. Значит можно анализировать значения переменных и не выполнять действия, ведущие к ошибкам, например вызов метода у null или undefined.
Вопрос: Как заменить один тег на другой без изменения содержимого?

Лучший ответ:
в смысле td на div?
в tr будут висеть div'ы?

Худший ответ:
Есть документ, <td>Текст1</td>
<td>Текст2</td>
<td>Текст3</td>
<td>Текст4</td>
нужно заменить на<div>Текст1</div>
<div>Текст2</div>
<div>Текст3</div>
<div>Текст4</div>
Вопрос: Как вывести простые числа с помощью JavaScript?

Лучший ответ:
console.log("2, 3, 5, 7, 11")UPD:function GetNumbers(n){ 
    var nums = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199];
    return nums.slice(0, Math.max( 0, Math.min(n, nums.length) ) ).join(', ');
}
Использование:console.log( GetNumbers(5) );
Результат:2, 3, 5, 7, 11
Вот тут можно взять еще простых чисел: denisx.ru/tech/prime-number/prime-numbers-list

Худший ответ:
Вот полное решение согласно ТЗvar n = prompt('Введите число если вы пользователь');
document.write('2, 3, 5, 7, 11');
Вопрос: Как убрать рубрику «Без рубрики» в собственной таксономии и типе записи?

Лучший ответ:
Вероятно, рубрика "Без рубрики" назначена как "Основная рубрика".
Зайдите в админ-панели в Настройки -> Написание и в выпадалке "Основная рубрика" выберите другую рубрику.
После этого должна появиться возможность удалить рубрику "Без рубрики".

Худший ответ:
в колонке "Записи" стоит число 1.
Значит есть товар в этой категории.
Удалите этот товар или назначьте ему другую категорию
Вопрос: Как отследить первый заход на сайт?

Лучший ответ:
Так а может просто сессионные куки? Или я чего-то не понимаю?

Худший ответ:
Даже Яндекс метрика считает уход с сайта - 30 минут бездействия. Так что самый надежный способ это сессии.
Можно сделать SPA сайт и держать сессию по WebSocket. Хотя тогда по факту F5 будет новым заходом и можно повесить модалку на onload.
Псевдо SPA можно сделать через PJAX. Но мой вам совет - не занимайтесь порно ...
Вопрос: Как обычным js или еще лучше jquery сделать возможность слева вытаскивать меню на swipe (touch) событие?

Лучший ответ:
Тач евенты просто прописываешь, на старт начинаешь тянуть, на мув определяется координаты на поверхности, на энд где отпустили поверхность. 
https://developer.mozilla.org/en-US/docs/Web/API/T...

Худший ответ:
Возможно поможет. Был раньше такой вопрос :)Ссылка