[macOS] А так ли нужен App Store?

Как и в случае с мобильными платформами, App Store для Mac OS нужен для того, чтобы предоставлять пользователям удобный доступ к поиску и загрузки приложений.

Однако, в случае iOS, где App Store является единственным официальным способом загрузки приложений, для Mac’ов положение дел во многом противоположное — основная масса приложений доступна для скачивания с сайтов-разработчиков. Небольшая часть из этих приложений дублируется и в App Store, однако зачастую магазин приложений содержит устаревшие, не обновленные версии, в противовес сайту разработчиков.

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

В отличии от мобильного App Store, разработчики для ПК не особо стремятся попасть в магазин приложений для Mac OS, от сюда и небольшое количество доступных программ. Тем не менее App Store все равно есть и будет хорошим источником трафика для разработчика, особенно если приложение выбрано редакцией или просто находится на лидирующих позициях в своей категории.

В свою очередь я изредка использую App Store в качестве дайджеста «Что новенького?», и в большей мере просто как инструмент обновления системы.

[macOS] Принудительное выключение экрана

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

По этому, чтобы принудительно взять и выключить экран, достаточно «Control + Shift + Eject«.

Как правильно отправить iMac в сон

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

Многие, чтобы отправить iMac в сон, просто нажимаю клавишу «Power» на задней стороне моноблока (можно и комбинацией Command + Option + Media Eject), а беспроводную клавиатура и мышь так и остаются быть включенными. И хотя в этих устройствах и присутствует система энергосбережения, я все равно выключаю и их.

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

Я нашел весьма банальный выход из этой ситуации — изменил порядок выключения устройств.

Т.е. теперь действия стали такими: выключаю мышь, потом на клавиатуре нажимаю Command + Option + Media Eject, чтобы перевести компьютер в сон, и лишь затем выключаю клавиатуру.

Удаление Jenkins в Mac OS

Чтобы в Mac OS удалить установленный ранее Jenkins, нужно запустить специальный скрипт:

sudo /Library/Application Support/Jenkins/Uninstall.command

Отобразится:

Jenkins uninstallation script

The following commands are executed using sudo, so you need to be logged
in as an administrator. Please provide your password when prompted.

+ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
+ sudo rm /Library/LaunchDaemons/org.jenkins-ci.plist
+ sudo rm -rf /Applications/Jenkins '/Library/Application Support/Jenkins' /Library/Documentation/Jenkins
+ sudo rm -rf /Users/Shared/Jenkins
+ sudo rm -rf /var/log/jenkins
+ sudo dscl . -delete /Users/jenkins
+ sudo dscl . -delete /Groups/jenkins
+ pkgutil --pkgs
+ grep 'org\.jenkins-ci\.'
+ xargs -n 1 sudo pkgutil --forget
Forgot package 'org.jenkins-ci.documentation.pkg' on '/'.
Forgot package 'org.jenkins-ci.jenkins.osx.pkg' on '/'.
Forgot package 'org.jenkins-ci.jenkins1531.postflight.pkg' on '/'.
Forgot package 'org.jenkins-ci.jenkins1549.postflight.pkg' on '/'.
Forgot package 'org.jenkins-ci.launchd-jenkins.pkg' on '/'.
Forgot package 'org.jenkins-ci.support.pkg' on '/'.
+ set +x

Jenkins has been uninstalled.

[macOS] Ограничение скорости Интернета

Есть несколько способов, чтобы ограничить скорость сетевого трафика в Mac OS (бывает полезно для тестирования ПО в условиях медленного Интернета). Наиболее интересным вариантом является графическая утилита Network Link Conditioner от самой Apple, которая имеет ряд уже встроенных профилей различных скоростей сетевого соединения (3G, DSL, Edge и пр.)

Скачать данную утилиту можно непосредственно на сайте разработчика в разделе «Downloads» (https://developer.apple.com/downloads/), которая входит в состав пакета «Hardware IO Tools for Xcode». После установки утилита будет доступна через оснастку  «System Preferences».

Network Link Conditioner

[Debian] Включение цвета вывода для ls в консоли

Чтобы задействовать цветное выделение данных, выводимых командой ls, достаточно раскомментировать в файле .bashrc (если работаете из под root’а, то находится в директории /root) следующие строки:

export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'

Чтобы изменения вступили в силу, нужно выполнить:

. ~/.bashrc

Результат:

ls_color

Просмотр подключенных модулей у Apache и nginx

Порой нужно узнать, какие модули подключены для Apache или nginx. К примеру, буквально пару дней назад необходимо было выяснить, подключен ли модуль mod_deflate у Apache.

Выполняем:

apache2ctl -M

Читаем:

Loaded Modules:
core_module (static)
...
deflate_module (shared)
...
Syntax OK

Для nginx также есть команда, которая показывает подробную информацию о сборке:

nginx -V

Читаем:

nginx version: nginx/x.x.0
built by gcc 4.4.5 (Debian x.x.x-x)
TLS SNI support enabled
configure arguments:
...
--with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-cc-opt='-g -O2 -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,--as-needed --with-ipv6

[Linux] Удаленный запуск графических приложений

Недавно нужно было на удаленной машине, работающей на Debian, запустить графическое приложение. На самом же Debian отсутствует X-сервер и графической оболочки, соответственно, ОС не имеет. К тому же, доступ к серверу есть только по SSH.

Теперь немного теории:

В X Window System предусмотрена сетевая прозрачность: графические приложения могут выполняться на другой машине в сети, а их интерфейс при этом будет передаваться по сети и отображаться на локальной машине пользователя (в случае, если это разрешено в настройках). Таким образом оконная система может находиться на другом компьютере, а графическое приложение связываться с ней через сеть. Так можно запустить приложение на удаленном компьютере, заставив его рисоваться на том компьютере, за которым сейчас работаете.

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

Я использовал следующую инструкцию для настройки Xming — ссылка. Однако при попытке запустить графическое приложение я получал следующее сообщение:

Xming.exe: client 4 rejected from IP …

Решение этой проблемы описано здесь.

pkgutil — утилита для управления пакетами (.pkg) в Mac OS X

В Mac OS X есть утилита под названием pkgutil, предназначенная для манипуляции с установщиками пакетов.

Чтобы вывести список всех установленных пакетов, достаточно выполнить команду

pkgutil --packages

Чтобы найти нужный пакет, можно воспользовать grep’ом:

pkgutil --packages|grep ...

Чтобы отобразить список всех файлов, принадлежащих конкретному пакету, нужно использовать параметр —files. В примере ниже выводится список файлов для пакета ru.mail.macagent:

pkgutil --files ru.mail.macagent

Mail.Ru Agent.app
Mail.Ru Agent.app/Contents
Mail.Ru Agent.app/Contents/Frameworks
Mail.Ru Agent.app/Contents/Frameworks/Growl.framework
Mail.Ru Agent.app/Contents/Frameworks/Growl.framework/Growl
...

Если вы удаляете файлы пакета вручную, то после таких действий нужно указать системе, чтобы она «забыла» такой пакет:

pkgutil --forget package-name