Почему покупка фильма «навсегда» — это ложь

В настоящее время легальные онлайн-кинотеатры предлагают помимо других способов доступа к просмотру контента (аренда, подписка, просмотр с рекламой) в том числе и т.н. покупку «навсегда» – после оплаты вы получаете неограниченный доступ к фильму.

Цена за такую покупку выше, чем просто аренда (порядка двухсот рублей), и большинство думает, что они действительно покупают фильм «навсегда», но это не так.

В цифровую эпоху сложно что-либо купить по-настоящему «навсегда». Если раньше вы шли в магазин, покупали видеокассету или DVD-диск, то становились полноценным обладателем копии фильма. Не важно, сколько времени пройдет – в любой момент вы сможете запустить на своем проигрывателе этот фильм, потому что у вас есть физический доступ к носителю.

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

Читать далее «Почему покупка фильма «навсегда» — это ложь»

Mikrotik — удаленный доступ через RDP

В офисе есть компьютер на ОС Windows. Сеть имеет «внешний» IP-адрес, используется роутер Mikrotik hAP ac².

Задача: необходимо получить к компьютеру доступ извне, через штатную утилиту «Удаленный рабочий стол».

Решение: заходим в панель управления Mikrotik, далее:

  1. В меню выбираем пункт IP -> Firewall
  2. Открываем вкладку NAT
  3. Создаем новое правило:
    1. Chain: dnsnat
    2. Src. Address: <внешний IP-адрес компьютера, с которого будем подключаться > (опционально, для защиты от вредителей)
    3. Protocol: (6) tcp
    4. Dst. Port: любая комбинация (к примеру, 14801)
    5. In. Interface: all ethernet
    6. Action: dns-nat
    7. To Address: <локальный IP-адрес компьютера, к которому будем подключаться >
    8. To Ports: 3389
  4. Сохраняем сделанные настройки
  5. Через «Удаленный рабочий стол» подключаемся к <внешний IP-адрес офисной сети>:<порт> Если все сделано правильно, то роутер направит данный запрос к нужному компьютеру.

WhatsApp — перенос истории чатов с Android на iOS

На Android уже давно использую WhatsApp, бекапы истории чатов идет на Google Drive.

Возникла необходимость перенести историю на iPhone. Ставим WhatsApp, и при первичной авторизации видим запрос на восстановление данных с… iCloud.

WTF?! А где Google Drive? Прости бро, но на iPhone мы не завезли восстановление с Google Drive. Видимо Google как бы намекает, что нечего переходить было с Android на iOS.

«Шеф, все пропало?» Ну уж нет! Начинаем рыться в сети, и находим единственный нормальный вариант – восстановить бэкап через приложение Dr.Fone от компании Wondershare. Приложение платное, стоит порядка 2,5 тыс. рублей. Да, дороговато, но расставаться с переписками я был не готов.

Сам процесс восстановления немного мудреный (через установку кастомной версии WhatsApp на Android и пр.), но важно то, что через полчаса на iPhone была уже восстановлена вся история переписки.

И вишенка на торте – удалось вернуть 2,5 тыс. рублей. Учитывая, что приложение Dr.Fone со своей задачей справилось и теперь больше не нужно, я написал разработчикам с просьбой возврата средств (да, пришлось наврать, что приложение не подошло). Через несколько дней был сделан рефанд.

Объектив M.Zuiko 30mm f/3.5 Macro

Заказал в апреле объектив Olympus M.Zuiko Digital ED 30mm f/3.5 Macro, по акции — 9900 руб. вместо дефолтных 21990, но доставить смогли только на третьей неделе мая (из-за задержки поставок по причине коронавируса).

У моего OMD-EM-5 Mark II в комплекте шел объектив 14-150/4-5.6, с минимальной дистанцией фокусировки в 30 см. Естественно, этого не хватало для макросъемки, что очень очень требуется в ряде ситуаций. У 30mm f/3.5 Macro минимальная дистанция ~1,4 см, увеличение 1.25.

Первым, что я мечтал снять – это пиксели на матрице монитора. И вот мечты сбываются 🙂

А еще приобрел штатив Manfrotto Pixi Mini Tripod Black – удобная тринога для случая, когда нужен компактный штатив небольшой высоты.

[macOS] Загрузка системы через внешний SSD

В начале 2013 года я перешел с PC на Mac (был приобретен iMac 27″ Late 2012). Прошло семь лет, а компьютер все еще покрывает текущие задачи в полной мере.

И если CPU, памяти и видеокарты мне хватает за глаза, то HDD во всей этой конфигурации оказался самым слабым местом — с каждым годом он деградировал, становясь все медленнее и медленнее. В итоге дошло до того, что загрузка компьютера после включения и того момента, когда можно было поводить курсором по экрану, составляла порядка десяти минут. Выход из сна был быстрее, но не намного.

Читать далее «[macOS] Загрузка системы через внешний SSD»

В чем был Путин в Коммунарке

  1. Комбинезон защитный Tychem C
  2. Маска полнолицевая Unix
  3. Фильтр противоаэрозольный UNIX 303 P3D (с самой высокой степенью защиты; из аналогов — 3m 6035)

Время воплощать желания!

Тут на днях пришла очередная рассылка от AliExpress с рекомендуемыми товарами. Ошибка с идентичными ценами со скидкой и без присутствует даже здесь )

[Android] Симуляция низкой скорости соединения

Во время тестирования бывает необходимым проверить поведение приложения при нестабильном Интернет-соединении, или низких скоростях.

Для того, чтобы симулировать такое на реальном устройстве Android (метод подойдет и для iOS), то можно воспользоваться возможностями прокси-сервером Charles, и его функцией «Throttle Settings…» (в меню Proxy). В окне настроек уже есть заготовленные пресеты.

gradle.properties и настройки Proxy

Понадобилось в Android Studio пустить трафик через прокси-сервер, чтобы проверить, к каким адресам происходят запросы при сборке проекта. Для этого в настройках Android Studio нужно найти HTTP Proxy и указать параметры подключения.

После того, как задача была выполнена, в этих же настройках я отключил прокси. Но при сборке проекта обращения к подключенным репозиториям все равно шли через прокси. В моем случае это выясняется через 20 минут «сборки», когда в консоль выкидывается сообщение, что невозможно скачать какой-то из пакетов и адрес прокси-сервера.

Несколько раз перетыкивал настройки HTTP Proxy в значение None, перезапускал Android Studio – безрезультатно.

Потом выяснилось, что параметры прокси записываются в локальный файл %user%/.gradle/gradle.properties и выглядит это примерно так:

## For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
#
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx1024m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
#Thu Mar 19 12:38:55 MSK 2020
systemProp.https.proxyPort=8888
systemProp.http.proxyHost=localhost
systemProp.https.proxyHost=localhost
systemProp.http.proxyPort=8888

Как и следовало ожидать, убрав строчки с прокси, все заработало.

Похоже на баг Android Studio, потому как при отключении прокси соответствующие записи из gradle.properties должны также удаляться.

[Sublime Text] Моя схема настроек

Наиболее комфортная для меня схема настроек (Preferences.sublime-settings) выглядит следующим образом:

{
	"color_scheme": "Packages/Color Scheme - Default/iPlastic.tmTheme",
	"draw_white_space": "all",
	"fallback_encoding": "Cyrillic (Windows 1251)",
	"font_options":
	[
	      "gray_antialias"
	],
	"highlight_modified_tabs": true,
	"ignored_packages":
	[
	      "Vintage"
	],
	"open_files_in_new_window": false,
	"show_encoding": true,
	"theme_font_options":
	[
	      "gray_antialias"
	],
	"translate_tabs_to_spaces": true,
	"trim_trailing_white_space_on_save": true,
	"update_check": false,
	"word_wrap": true,
	"folder_exclude_patterns": ["node_modules", "bower_components", ".idea", ".gradle", ".git"]
}