Компенсация покупок баллами «Браво» в банке Тинькофф, или Задача о рюкзаке / ранце

Долгое время я пользовался кредитной картой. Это действительно удобно, если соблюдать грейс период и не снимать наличные. Как гласит поговорка, «доллар сегодня стоит дороже, чем доллар завтра». Так зачем платить сегодня, если можно заплатить спустя месяц, а иногда и взять бесплатную рассрочку? Впрочем, от кредитки я уже отказался. Почему — выходит за рамки тематики этого блога.

Однако, пока пользовался, передо мной стояла задача компенсации покупок баллами «Браво». Для тех, кто не в курсе: за каждые 100 рублей покупок начисляется 1 балл. С помощью накопленных баллов спустя примерно месяц можно компенсировать покупки в некоторых категориях, чаще всего в ресторанах и кафе. Проблема в следующем: если у меня есть, например, 100 баллов и несколько покупок на разные суммы, то какие суммы выбрать для компенсации, чтобы использовать как можно большее количество баллов? Далее

YouTube: Автоматическое получение данных о динамике просмотров

Интересно отслеживать динамику популярности каналов — выраженную в количестве просмотров или подписчиков, — если стоит задача выбрать наиболее перспективные, быстрорастущие каналы и таргетировать на них рекламу. Следить за одним, двумя, десятью каналами совсем не трудно и в полуавтоматическом, и даже в ручном режиме. А если каналов сто или тысяча? Читать далее YouTube: Автоматическое получение данных о динамике просмотров

Учёт рабочего времени в Google Docs

В целях повышения личной эффективности я решил вести учёт своего рабочего времени. Цели:

  • Узнать, сколько тратится рабочих минут…
  • … и на какие задачи,
  • как распределяется время отдыха,
  • плюс самоконтроль.

Читать далее Учёт рабочего времени в Google Docs

Топ 10 важных факторов видео YouTube

Эта статья — чеклист, по которому можно пройтись при оформлении видео на YouTube.

1. Контент

Банально, но видео должно быть интересным. Больше время просмотра ➡️ больше денег от рекламы. Какими бы способами вы ни привлекли зрителя, будь то хоть реклама, хоть грамотное оформление — если видео неинтересное, толку будет мало.

2. Значок видео

Он же thumbnail или превью. Визуальная часть оформления — то, что в первую очередь привлекает зрителя. Очевидно, что значок должен быть привлекательным. Не буду вдаваться в подробности: их можно узнать из официальной статьи. Но если вкратце, вот главные требования: Читать далее Топ 10 важных факторов видео YouTube

Цветные emoji в Google Chrome на Ubuntu

По большому счёту, это сокращённый перевод вот этой статьи: How To Enable Color Emoji on Chrome for Linux. Однако у меня есть пара дополнений, без которых не удалось „завести” эту шарманку. Читать далее Цветные emoji в Google Chrome на Ubuntu

Создание клона игры или приложения для Android

Хотите установить два одинаковых приложения Android на один телефон? Или даже больше? Есть способы сделать клон и одновременно запускать две копии Viber, WhatsApp, QIWI-кошелька. Ну или Pokemon Go — как тут его не упомянуть! Читать далее Создание клона игры или приложения для Android

Автоматическое заполнение заголовков файлов Python

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

autocmd bufnewfile *.py so /home/user/.python_header.vim
autocmd bufnewfile *.py exe "1," . 8 . "g/File Name :.*/s//File Name : " .expand("%:t")
autocmd bufnewfile *.py exe "1," . 8 . "g/Creation Date :.*/s//Creation Date : " .strftime("%Y-%m-%d")
autocmd Bufwritepre,filewritepre *.py execute "normal ma"
autocmd Bufwritepre,filewritepre *.py exe "1," . 8 . "g/Last Modified :.*/s/Last Modified :.*/Last Modified : " .strftime("%Y-%m-%d %H:%M:%S")
autocmd bufwritepost,filewritepost *.py execute "normal `a"
autocmd bufnewfile *.py exe "normal G"

Здесь первая строчка ссылается на файл /home/user/.python_header.vim — он содержит заголовок, который вставляется в файл при его создании. Вот содержимое этого файла:

:insert
#!/usr/bin/env python3
# vim: set fileencoding=UTF-8
#
# File Name :
# Purpose :
# Creation Date :
# Last Modified :
# Created By : Anton 'KodopiK' Konoplev


.

Остальные строки из .vimrc нужны для изменения (апдейта) тех или иных значений из шапки — таких как дата редактирования Python-файла (Last Modified).

Автоматическое определение тИЦ в Таблицах Google

Допустим, у нас есть таблица с доменами сайтов в столбце A:

Screenshot_1

С помощью указанных ниже запросов мы можем в автоматическом режиме и массово узнать их тИЦ и rang.

Для Яндекс тИЦ:

=IMPORTXML("http://bar-navig.yandex.ru/u?ver=2&url=http://" & A2 & "&show=1"; "//tcy/@value")

Для Яндекс rang:

=IMPORTXML("http://bar-navig.yandex.ru/u?ver=2&url=http://" & A2 & "&show=1"; "//tcy/@rang")

Другими словами, запросы идут по URL Яндекс-Бара, например http://bar-navig.yandex.ru/u?ver=2&url=http://kodopik.ru&show=1 (пример для этого сайта).

Помните, что site.ru и www.site.ru могут иметь разные значения тИЦ!

Быстрое переименование файла в bash

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

# вместо
cp very_long_filename.txt very_long_filename.txt.bak
# пишем
cp very_long_filename.txt{,.bak}

Пример в цикле:

for i in {001..100}
do
  … какие-то действия …
  mv output{,_${i}}.jpg
done

Получаем файлы output_001.jpg, output_002.jpg, …, output_099.jpg, output_100.jpg. Если не нужны лидирующие нули, то for i in {1..100}.