Архив

Перенос mac приложений в brew

Думаю что многим разработчикам, работающим в macOS, знаком Homebrew. Изначально он развивался как менеджер пакетов пришедший на замену macports и fink, но, со временем, начал обрастать дополнениями которые поддерживаются сообществом.

Homebrew

Одно из таких дополнений это Cask, оно позволят работать с приложениями с закрытым исходным кодом, которые устанавливаются в систему путем перемещения в директорию /Applications. Cask реализует возможность устанавливать и следить за обновлениями таких приложений как:

Homebrew Cask Install

После установки приложения через Cask ничего не меняется. Оно будет работать также как работало до этого, будет предлагать обновления через собственные механизмы. Однако, brew тоже будет отслеживать состояние приложения и обновлять его если выйдет новая версия, brew создает команды запуска для терминала, если они предусмотрены и сможет удалить приложение под чистую, если это потребуется. А еще, с его помощью, можно сделать Brewfile, который позволит установить нужные приложения на новом компьютере одной командой.

В какой-то момент я обратил внимание что у меня не систематизированы установленные приложения: часть установлена через brew, другая часть руками и мне захотелось навести порядок в этой системе.

Читать далее

MikroTik автоматическое обновление листов

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

Обновление листов представляет из себя выполнение shell команд, которые исполняются на Router OS. Их можно предварительно сгенерировать и выполнить на маршрутизаторе, либо выполнять сразу, в runtime, без создания отдельного файла.

Шаблон файла обновления

/ip firewall address-list
remove numbers=[find list=spotify]
add list=spotify address=104.154.127.47
add list=spotify address=78.31.8.0/21

В моем случае обновление листа подразумевает удаление всех правил и добавление новых. Необходимости делать точечные изменения у меня не возникало.

В листе выше, мы удаляем все адреса которые присутствуют в листе spotify - remove numbers=[find list=spotify].  Затем идут команды добавления новых адресов add list=spotify address=78.31.8.0/21 их можно добавлять сколь угодно много, но большие обработка больших листов будет отнимать ресурсы роутера, поэтому заливать туда полный список от РКН не рекомендую.

Читать далее

Настройка маршрутизации трафика через VPN в RouterOS

В качестве домашней точки доступа я использую маршрутизатор MikroTik hAP ac2. Я выбрал его из-за обилия настроек и возможности реализации таких сценариев которые недоступны его конкрурентам.

mikrotik hap ac2

Один из таких сценариев - настройка автоматического соединение с некоторыми хостами через VPN.

Зачем это может быть нужно:

  • Сайт недоступен из интернета. Например, он находится в корпоративной сети
  • Вы не хотите чтобы провайдер знал что вы посещаете данный сайт
  • У сайта есть ограничения на доступ из вашей локации. Spotify или Telegram
Читать далее

Youcast. Просмотр youtube через подкасты

Хочу рассказать вам еще об одном стартапе который я пилю на досуге. "Пилю" - это, конечно, громко сказано, так как проект был запущен три года назад и с тех пор почти не развивался, но обо всем по порядку.

https://blog.rpsl.info/images/ca09/4191/ca09419178564de38c998d25f99247dd.jpg

Читать далее

Идея стартапа "Рассказчик"

Для начала чуть-чуть контекста. Я смотрю достаточно много сериалов. Я ознакамливаюсь с большинством новинок которые обладают вменяемым описанием. К сожалению большинство из них я бросаю после нескольких серий, другие по инерции досматриваются до конца сезона на быстрой перемотке. Быстрая перемотка для меня это не ускоренное воспроизведение, а просмотр сериала с телефона, когда можно в одно касание перемотать серию на 10-20 секунд вперед. Таким образом за 25 минут в метро я умудряюсь посмотреть часовую серию проходного шоу.

И вот уже много лет я мечтаю о сервисе который бы позволил не использовать быструю перемотку, а сразу собирать серию из интересных мне сюжетных линий. Самостоятельно такой проект я никак не потяну, поэтому максимум что могу сделать рассказать тут об идее. Хотя, велика вероятность, что когда-нибудь он появится, а может и уже где-нибудь существует.

картинка для привлечения внимания

В моем видение это должен быть проект с генерируемым пользовательским контентом. На рисунке я постарался схематически изобразить как он должен выглядеть для пользователя, но внутренняя механика должна быть схожа с какой-нибудь википедией. У всех серий есть хронометраж и мы точно знаем что он не меняется, а построение большинства серий сводится к тому что это последовательный набор сцен. Значит каждую серию можно нарезать на сцены и далее эти сцены помечать различными "сюжетными линиями". Далее любой человек может самостоятельно добавлять различные сюжетные линии и голосовать за уже созданные, если хочет, разумеется. А если не хочет, то может просто выбрать популярные сюжетные линии прочитав их описание.

Представьте как бы было здорово смотреть сериалы без всех этих нудных разговоров по 5 минут. Вот если из "The Walking Dead" выкинуть всю ересь про их личные взаимоотношения и получить только историю про выживание и зомби. Если из первых сезонов "Homeland" выкинуть большую часть страданий про семью Броуди, оставив только ключевые моменты и расследование Кэрри. Ну, или если вы страдает острой формой мазохизма, то наоборот собрать себе из ходячих мертвецов только сюжетную линию их личных взаимоотношений.

Все зависит от вашей фантазии.


AdBlock блокировка лидогенераторов

Уже полтора года я собираю лист фильтров для AdBlock который блокирует виджеты лидогенераторы. Это та навязчивая херня которая издает разные звуки, мигает на половину страницы и предлагает оставить вам свой номер для обратного звонка от сейлов сайта.

Mega shit widget

Код лежит на гитхабе, можно легко контрибьютить. Я добавляю в него только те системы которые встречаю самостоятельно и которые не являются разработкой конкретного сайта, т.к. гоняться за последними жизни не хватит.

Для подписки можно нажать на эту ссылку, либо добавить вручную:

https://raw.githubusercontent.com/Rpsl/adblock-leadgenerator-list/master/list/list.txt

Борьба с телефонным спамом

Свой первый телефонный номер я приобрел примерно в 2002 году, может раньше, но точно не позже. Тогда Мегафон только появился на рынке и заходил он сразу с козырей предлагая тариф "безлимит за $25". Номер я купил в ближайшей палатке и пользовался им примерно до 2012 года. Примерно в 2012 году, когда начали появляться новые форматы сим карт я с горечью осознал, что номер зарегестрирован на незнакомого мне человека и переоформить на себя его уже не получится. Я реально сделал очень много попыток, пытался договориться с сотрудниками и знакомыми которые имеют отношение к Мегафону, но все разводили руками. В какой-то момент я даже рассматривал вариант устройства на работу в салон связи, чтобы получить доступ к исправлению информации и уволиться, но там не сразу эти доступы давали, и я решил забить.

spam 80 lvl

В итоге пришлось оформлять новый контракт, т.к. старая сим карта не подходила к новым телефонам, да и выглядела так что вот-вот развалится. Поэтому в момент покупки iphone 5 я купил новый номер. Старый отключать не стал и поддерживал его в живом состояние еще несколько лет, чтобы убедиться что звонки/смс/оповещения на него больше не приходят. В какой-то момент я отпустил его, да и к тому времени я им уже не пользовался.

Читать далее

macOS: Предотвращение оглушения

За компьютером я сижу в наушниках. Наушники подключены к внешней звуковой карте "Sound Blaster Omni" и в этом конфиге громкость наушников в 20% является достаточной, а громкость выше 40% процентов уже слишком громкой.

когда забыл убавить громкость

Изначально я решил этот вопрос простым скриптом login.sh который выполняется при входе в систему:

#!/bin/bash

osascript -e 'set volume 1'

При входе звук сбрасывается в минимальное значение, а его делаю громче когда мне нужно. Жил я с такой системой много лет, пока не начал использвать iPad в качестве второго монитора. Для подключения iPad у меня стоит программа Duet и либо с ней проблемы, либо с системой из-за переодического подключения/отключения мониторов, но, временами, громкость звука стала подниматься до 90%-100%.

90% громкость в моей системе это можно наушники бросить под стол и прекрасно слышать все происходящее, абсолютно без проблем.

Так вот, дабы не оглохнуть раньше времени, пришлось добавить "бота" в систему который каждые несколько секунд проверяет громкость звука и если она выше положенной, то возвращает её на допустимый уровень.

~/Library/LaunchAgents/com.local.volumelevel.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.local.volumelevel</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/osascript</string>
        <string>-e</string>
        <string>if (output volume of (get volume settings)) > 25 then set volume output volume 25</string>
    </array>
    <key>StartInterval</key>
    <integer>10</integer>
</dict>
</plist>

Нативный обработчик Apple Script, запускается каждые 10 секунд и выполняет команду

if (output volume of (get volume settings)) > 25 then set volume output volume 25

Все. Теперь не оглохну.


Будильник из Banana Pi (Raspberry Pi)

Скопирую сюда статью которую писал в 2014 году на geektimes, про то как я будильник из микрокомпьютера делал.


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

  1. Уметь играть интернет-радио в качестве будильника.
  2. Работать по Wi-Fi (wpa2, “N” режим, желательно уметь без wps).
  3. Желательно уметь показывать время и работать как часы.
  4. Желательно иметь возможность настройки через телефон или компьютер.

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

Читать далее

Wunder digest

Для ведения личных дел я пробовал использовать различные менеджеры заданий, но всегда возвращаюсь на wunderlist. Он меня жутко раздражает своим интерфейсом и отсутствием нужных мне функций, поэтому раз в год я закипаю и пытаюсь мигрировать в другой продукт, несколько дней настраиваю все под себя, устанавливаю мобильный клиент, красиво веду задания, а потом запал проходит, я начинаю замечать недостатки и возвращаюсь туда откуда начинал.

В последний раз я попытался сформулировать чего мне не хватает в wunderlist и постараться исправить эту проблему. В первую очередь мне не хватало дайджеста дел которые просрочились или запланированы на сегодня, поэтому я написал простенький скрипт, который получает из api wunderlist список дел, отбирает нужные и отправляет этот список на почту.

Не могу сказать что жизнь прямо наладилась и я стал образцом продуктивности, но не забывать о важных вещах стало удобнее.

wunder digest

https://github.com/Rpsl/wundrelist-digest

Читать далее