Skip to content

Instantly share code, notes, and snippets.

@1234ru
1234ru / Yandex.Oauth.md
Last active September 15, 2023 17:59
Как получать и использовать авторизационный токен Яндекса

Токен не существует сам по себе, а выдается приложению от имени чьего-то аккаунта в Яндексе. Таким образом владелец аккаунта разрешает этому приложению доступ к определенным операциям со своим аккаунтом. Токен является реализацией такого разрешения.

1. Регистрируем приложение

Заполняем форму на https://oauth.yandex.ru/client/new. Обязательно сделать следующее:

  • указать название приложения (например, "watches.ru site engine")
  • в разделе Callback URI нажать "Подставить URL для разработки", в поле возникнет адрес от Яндекса
  • среди доступов найти нужный раздел (например, для Яндекс.Маркета и Беру.ру это Яндекс.Маркет).

Ознакомительная статья: https://habr.com/ru/post/310460/

  • Устанавливаем.
    Последняя версия Docker, совместимая с Windows 10.0.10586 (build 1511) - 17.06.2-ce (1.30 от 5 сентября 2017)
    Полный список версий: https://docs.docker.com/docker-for-windows/release-notes/

  • Нужно включить виртуализацию.
    Это делается в настройках BIOS (а не операционной системы). Называется это SVM Mode. Надо перезагрузиться (уйти в hibernation недостаточно).

  • Запускаем Docker и убеждаемся, что он в рабочем состоянии.

@1234ru
1234ru / linux.md
Last active April 15, 2019 19:05
Установка программ и различные настройки для Ubuntu 16.04

Как узнать текущую версию ОС

Команда lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:        16.04
Codename:       xenial
@1234ru
1234ru / PhpStorm.md
Last active July 12, 2021 11:52
Всякое про среду PhpStorm

Что нравится

  • Красивый! Приятно смотреть. Все элементы интерфейса выполнены гладко, есть ненавязчивые подсказки.

    • Прозрачные полосы прокрутки (scroll bars). Не отнимают места от области редактирования. Умно!
  • Автозаполнение. Красиво выглядит и удобно работает, снабжено подсказками.

    • Подставляются даже переменные в Sass! Не говоря уже о CSS-свойствах и их значениях.
    • Подставляются классы из HTML (из числа классов в текущем файле)! Удобно, когда нужно сделать вложенный элемент по БЭМ (типа someclass-mod: при наборе someclass подставится, останется добавить только -mod)
    • Подставляются сокращения из Emmet, причем перед подстановкой они отображаются в списке с пометкой "Emmet abbreviation" (при этом показывается результат подстановки), благодаря чему их можно тут же изучать, узнавая новые. Характерные примеры:
  • m0, m:0 -> margin: 0;, m:0:a -> margin: 0 auto;

@1234ru
1234ru / git.md
Last active April 16, 2024 17:17
Полезное при работе с git

Отмена изменений

Вернуть файл к состоянию последнего коммита (аналог svn revert) можно командой git checkout файл. Уточнение: файл будет возвращен к зафиксированному состоянию, если после коммита была явно дана команда git add файл. То есть, откатываются изменения, сделанные после git commit или git add. Если файл был удален, то нужно указать версию; например git checkout HEAD файл.

Так можно откатить и всю папку (в т.ч. рабочий каталог): git checkout ..

Для отмены изменений на уровне рабочей копии служит команда git reset. Она "отматывает" историю изменений назад до указанного момента (в том числе отменяет коммиты), не трогая физические файлы:

  • git reset файл
@1234ru
1234ru / dev.md
Last active April 18, 2023 12:00
Первые шаги при развёртывании окружения для разработки

Подготовка сервера разработки

  1. Создаем общий каталог для проекта. Там будет располагаться каталог веб-сервера (или несколько, если одновременно будут существовать несколько копий), находиться служебные скрипты и пр. Например, /sites/mysite (здесь и далее обозначен как @).

Организация доступа к production-серверу (если есть)

  1. Если рабочая площадка уже есть - получаем доступ по SSH, логинимся.

  2. Проверяем, есть ли на сервере git (если нет - выясняем, можно ли его установить).

@1234ru
1234ru / Sass.md
Last active August 19, 2022 12:24
Заметки об использовании Sass

Source maps

Редактировать исходники в браузере оказалось не особенно-то и удобно:

  • изменения применяются не сразу, как только их ввели (как когда редактируешь обычный стиль), а только при нажатии "Сохранить". Для микроправок (например, когда двигаешь по пикселю) это неудобно.

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

Sourcemaps, тем не менее, остаются полезными для определения исходного положения того или иного стилевого правила (т.е. "только для чтения").

@1234ru
1234ru / nginx-php-win.md
Last active April 3, 2024 04:53
Установка nginx и PHP на Windows

Установка nginx

  1. Скачиваем отсюда https://nginx.org/ru/download.html и распаковываем куда-нибудь.

  2. Дальше читаем тут https://nginx.org/ru/docs/windows.html ВНИМАНИЕ: команду start nginx обязательно даем прямо из каталога, в котором лежит nginx.exe, в противном случае при дальнейшей работе будут ошибки (все пути в конфигурации прописаны как относительные, только поменяв их все, можно запускать откуда угодно). Вообще рекомендуется держать консоль открытой в этом каталоге до самого конца выполнения инструкций, однако для работы nginx это необязательно - если её закрыть, он продолжит работать.

  3. Открываем http://localhost/ - должно заработать.

@1234ru
1234ru / set_real_error_handler.php
Last active February 21, 2019 22:50
A small wrapper around PHP's built-in function for custom error handling.
<?php
/**
* A small wrapper around PHP's built-in function for custom error handling.
*
* @param callback $callback this function accepts four parameters, same as required for set_error_handler() callback.
* For error types explanation see http://php.net/manual/en/errorfunc.constants.php
*
* @return void
*/

Пример: список стран с иконками флагов.

Сделать это чистым CSS не получается по ряду причин:

  • option[value="..."]::before действует только при раскрытом списке, на сам же <select> - нет
  • к <select> неприменимо ::before
  • на <select> не действует [value=...], в т.ч. потому, что такое правило действует на основе исходного HTML-кода страницы, а не динамически при работе с полем

Несложное решение возможно с помощью jQuery.select2(). Используются параметры templateSelection и templateResult. Пример: