Показаны сообщения с ярлыком macos. Показать все сообщения
Показаны сообщения с ярлыком macos. Показать все сообщения

четверг, 30 августа 2012 г.

Отключаем ARC в некоторых файлах в XCode

ARC (Automatic Reference Count) был реализован в XCode 4.2.  Это означает что вам больше не придется использовать конструкции вида release, autorelease, или retain в вашем коде. Это намного упрощаем жизнь программистам, но в тоже время усложняет при копировании кода , написанного для более ранних версий Xcode. И как раз тут и возникают ошибки типа 'release' is unavailable: not available in automatic reference counting mode или ARC forbids explicit message send of 'release' или  ARC forbids explicit message send of 'autorelease'. Здесь я предлагаю решение данной проблемы.

1. Выберите свой проект в Project Navigator и далее на Target


2. Во вкладке "Build Phases" разверните "Compile Sources"
3. Далее щелкните 2 раза по нужному файлу напишите в открывшемся поле " -fno-objc-arc" без кавычек.

четверг, 5 апреля 2012 г.

Как перевернуть пароль с русской раскладки на английскую

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

И вот тут начинается самое веселое: нужно вспомнить какая русская клавиша, на клавиатуре, соответствет английской. На помощь придет виджет "Переворачиватель паролей", который висит вверу-справа. Открываете мой блог в браузере мобильного девайса и вводите, например, "МойПароль", получите "VjqGfhjkm". Далее, просто выделяете и копируйте в буфер и вставляете, предварительно переключившись в нужное приложение.

И да, забыл добавить, пароли нигде не хранятся (чистый javascript).

среда, 4 апреля 2012 г.

Вышло обновление Mac OS X


Вышло обновление для Mac OS X: Java.

Java для OS X 2012-001 обеспечивает повышение совместимости, безопасности и надежности путем обновления Java SE 6 до версии 1.6.0_31.

Подробные данные об этом обновлении можно найти на веб-странице http://support.apple.com/kb/HT5055?viewlocale=ru_RU.
Подробную информацию о системе безопасности этого обновления можно найти на веб-странице http://support.apple.com/kb/HT1222?viewlocale=ru_RU.

четверг, 22 марта 2012 г.

Проброс порта через ssh туннель в Mac OS X

Создать ssh-туннель в Mac OS X можно следующей командой
sudo ssh root@Vneshniy-Server.com -L 443:Vnutrenny-Server.net:443

Теперь подключиться к Vnutrenny-Server.net по 443 порту можно обратившись к хосту localhost:443.

вторник, 20 марта 2012 г.

Установка обновлений Mac OS X через Терминал

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

Итак, открываем терминал и пишем:
sudo softwareupdate -i -v -a

Рассмотрим более детально опции:
-i - установить обновления
-a - установить все обновления(используется совместно с -i)
-v - отображать процесс

Посмотреть список доступных обновлений можно так:
sudo softwareupdate -l

Ну и если хотите еще разобраться более детально, то можно почитать man:
man softwareupdate

Отмена задания на печать из терминала

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

Отмена всех заданий:
cancel -a

Если принтер подключен по сети, то отменить можно так:
cancel -a -h 192.186.0.1:[port]

Или отменить все задания которые послал на принтер Vasya
cancel -a -U "Vasya"

понедельник, 19 марта 2012 г.

Заставляем iTunes выводить информацию о проигрываемом треке

В Mac OS X Lion в iTunes убрали "по-умолчанию" информацию о проигрываемом треке. Решим данную незадачу =)

Запускаем терминал и пишем команду:
defaults write com.apple.dock itunes-notifications -bool YES;killall Dock

Команда пропишет необходимые параметры и перезапустит Dock панель. После этого, когда будет начинаться слеудующий трек вы будете видеть что играет iTunes. Смотрим пикчу:


четверг, 15 марта 2012 г.

Разделитель в Dock Mac OS X

Разбить Dock можно с помощью невидимых разделителей. Например, у меня так:
 Очень удобно сгуппировать значки по типу. Например: "Интернет", "Разработка" и т.д. Решить задачку поможет Терминал. Запускаем его (у вас еще не открыт?).

В терминале пишем 
defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}';killall Dock
и выполняем ее нажав Enter

После данной команды у вас пропадет и снова появится Dock, но у же с раделителем, который можно перемещать и удалять также как обычную иконку Dock панели.

Если вам нужно добавить еще разделителей - то нужно просто повторить операцию необходимое количество раз.

вторник, 13 марта 2012 г.

Как включить поддержку записи NTFS в Mac OS X 10.7 Lion стандартными средствами.

Источник

После установки Mac OS X 10.7 Lion Golden Master начал присматриваться к будущему рабочему окружению: что и как работает, что убрали, что добавили, что переместили. Это же практически то, что нас ожидает вот-вот-вот! Решил опробовать как обстоят дела с чтением/записью NTFS в Lion. Чтение, конечно же, и так работает, как говорят «из коробки», а я решил пошаманить с включением записи на NTFS разделы подручными средствами операционной системы «Лев». На ум пришёл уже известный способ, которым пользовался в Mac OS X Snow Leopard. Но не смотря на резвость работы этого Golden Master’а я был огорчён. Как вы уже догадались, не работает этот способ в Mac OS X Lion GM. Но в этот раз я уже не обращался к гуглу. Смысла в этом нет, рано. Сейчас все кругом да около пишут обзоры и сплетни, а не колупаются в глубинах ОС. Решил этим делом заняться сам, и это дало положительный результат.
Методом научного тыка (народные методы не расписываются в мелочах) определил, что c бинариком mount_ntfs в папке /sbin всё впорядке, скрипт, который мы создаём, тоже работает как нужно. Оказалось, что всё дело крылось в самом драйвере (кексте)ntfs.kext, который находится в /System/Library/Extensions/. Немного поколупавшись в NTFS драйверах от Mac OS X 10.6.8 и от Mac OS X 10.7 GM обнаружил, что драйвера отличаются минимально, можно сказать только сборкой, но вот Lion’овскую лешили встроенной поддержки записи на NTFS разделы. Попробовал подсунуть бинарик кекста ntfs.kext из Snow Leopard в Lion, полечил права, перезагрузился… И всё заработало! Короче, инструкция:
Скачиваем этот архив, в котором находится бинарик от ntfs.kext из Mac OS X 10.6.8 Snow Leopard и скрипт. Распаковываем этот архив на Рабочий стол. У вас должна появиться папкаNTFS_Enabler в которой находятся два файла: mount_ntfs и ntfs. Запускаем Терминал(Terminal.app) и выполняем:
1) Чтоб не писать лишних sudo сразу говорим, что мы будем работать от лица администратора (root’а):sudo -sи жмём Enter. На запрос пароля вводим пароль суперпользователя и снова жмём Enter.
2) Создаём резервную копию бинарика из ntfs.kext:mv /System/Library/Extensions/ntfs.kext/Contents/MacOS/ntfs \
/System/Library/Extensions/ntfs.kext/Contents/MacOS/ntfs_orig
3) Копируем бинарик драйвера ntfs.kext, вытянутый из Mac OS X 10.6.8 Snow Leopard, на место оригинального бинарика:cp ~/Desktop/NTFS_Enabler/ntfs \
/System/Library/Extensions/ntfs.kext/Contents/MacOS/ntfs
4) Назначаем ему правильные права и атрибуты:chown root:wheel /System/Library/Extensions/ntfs.kext/Contents/MacOS/ntfs;\
chmod 644 /System/Library/Extensions/ntfs.kext/Contents/MacOS/ntfs
5) Создаём резервную копию оригинального демона mount_ntfs:mv /sbin/mount_ntfs /sbin/mount_ntfs_orig
6) Теперь на место оригинального демона mount_ntfs помещаем скрипт-враппер, который будет «перехватывать» системные комманды и активировать ntfs.kext на чтение и запись:cp ~/Desktop/NTFS_Enabler/mount_ntfs /sbin/mount_ntfs
7) Скопированному скрипту назначаем правильные права и атрибуты:chown root:wheel /sbin/mount_ntfs; chmod 755 /sbin/mount_ntfs
8) Запускаем драйвер:kextload /System/Library/Extensions/ntfs.kextПри удачном запуске не должно быть ошибок.
9) Запускаем Дисковую утилиту и перемонтируем диски с файловой системой NTFS. Перезагружаться не нужно.
В архиве так же находится текстовый документ с командами построчно, так как движок блога мог поколбасить некоторые из них. После выполнения вышеперечисленных 9-ти шагов диски и разделы с файловой системой NTFS будут монтироваться на чтение и запись сразу, без каких-либо «прописок» в fstab и перезагрузок! Отключить запись на NTFS и вернуть всё обратно можно при помощи двух консольных команд (потребуется пароль администратора):
sudo mv /sbin/mount_ntfs_orig /sbin/mount_ntfsпотомsudo mv /System/Library/Extensions/ntfs.kext/Contents/MacOS/ntfs_orig \
/System/Library/Extensions/ntfs.kext/Contents/MacOS/ntfs
Читатель блога по имени Сергей Васильев провёл исследование этого метода и выделил следующие «плюсы» и «мниусы»:
Плюсы:
  • Большая скорость записи, около 30 МБ/сек.
  • При удалении файлов помещает их в корзину, а не удаляет перманентно.
Минусы:
  • Если том «некорректно» отмонтирован из винды, то ругается в лог и монтирует read-only.
  • Disk Utility не может создавать раздел типа NTFS.
  • Ну, это всё-таки хак ;-)
Поэтому читателям такая рекомендация: по дефолту пользоваться нативным драйвером согласно этому методу. Но Держать NTFS-3G установленным, но выключенным (кнопка Disable/Enable в System Preferences) на случай если нужно примонтировать проблемный раздел или разметить диск. Так же от себя напомню, что всё опробовалось и работает начиная с Mac OS X Lion 10.7 Golden Master, до Mac OS X Lion 10.7.2 включительно.
Не используйте NTFS для хранения важных файлов при работе в Mac OS X; и наоборот, не используйте HFS+ для хранения важных файлов при работе в Windows. Не полагайтесь на сторонние решения, такие как Tuxera NTFS, Paragon NTFS или NTFS-3G. Используйте функцию записи на NTFS только для обмена файлами, потеря которых не критична, или если имеется их резервная копия.
Внимание! Из-за многочисленных нестыковок я создал небольшой пакет под названием NTFS Tools, который проделает всё вышеописанное автоматом (ссылка на обзор).

суббота, 10 марта 2012 г.

Выводим IP-адрес в строке приглашения bash

Открываем для редактирования .profile в корневом кталоге пользователя:
vim ~/.profile

Далее добавим строку
export PS1=`/sbin/ifconfig en0 | /usr/bin/perl -ne 'if ( m/^\s*inet (?:addr:)?([\d.]+).*?cast/ ) { print qq($1\n); exit 0; }'`:$PS1


После этого получим что то типа этого

пятница, 9 марта 2012 г.

Сброс кэша DNS или используем dscacheutil

Для сброса кеша dns в Mac OS используется системная утилита dscacheutil.

Команда: sudo dscacheutil -flushcache

Бессонница у "Льва" или Mac OS X Lion не засыпает

Обнаружилось что Lion не может или не хочет "полноценно" засыпать. Как оказалось,- все дело в том что Mac OS X Lion мешает уснуть какая то служба. Чтобы обнаружить ее придется проделать кое-какие манипуляции. Итак, открываем терминал:
Набираем команду:
sudo pmset -g assertions
После чего вводим собственный пароль. И видим примерно следующую картину:
Командой kill убъем "мешающий" процесс:
sudo kill 19143


После этого Лев уснет сном младенца. Единственное что подчеркну: что это всего лишь временное решение.

среда, 22 февраля 2012 г.

Статические маршруты в macos при поднятии VPN

По-умолчанию, при поднятии VPN соединения, Mac OS X пропишет только один статический маршрут, соответствующий создаваемому туннелю. Но бывают ситуации когда необходимо прописать несколько маршрутов для подсетей или хостов. Решить данный вопрос в GUI Mac OS X невозможно. Но возможно через консоль(терминал).

Итак, открываем терминал. Для решения данной задачи создадим файл /etc/ppp/ip-up, и сделаем его исполняемым: 

sudo touch /etc/ppp/ip-up
sudo chmod a+x /etc/ppp/ip-up

Открываем созданный файл для редактирования

sudo vim /etc/ppp/ip-up

и пропишем в нем:
#!/bin/sh
ifname=$1        # the interface name used by pppd (e.g. ppp3)
ttyname=$2       # the tty device name
speed=$3         # the tty device speed
localip=$4       # the local IP address for the interface
remoteip=$5      # the remote IP address
ipparam=$6       # the current IP address before connecting to the VPN
 
case "$remoteip" in
    172.24.38.116)
        /sbin/route add -net 192.0.2.0/24 -interface $ifname
        /sbin/route add -host 192.168.12.54 -interface $ifname
        ;;
esac
 
exit 0;
В данном примере 172.24.38.116 это ip-адрес сервера VPN. 192.0.2.0/24 и 192.168.12.54 подсеть  и хост, которые пойдут через VPN туннель. IP-адрес сервера можно посмотреть после установления VPN соединения командой ifconfig и найти интерфейс ppp0.
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1448
 inet 192.168.20.57 --> 172.24.48.116 netmask 0xffffff00 
Аналогично можно сделать скрипт для удаления маршрутов /etc/ppp/ip-down, который  будет вызываться при остановке VPN туннеля:
/sbin/route delete -net 192.0.2.0/24 -interface $ifname
/sbin/route delete -host 192.168.12.54 -interface $ifname
Если есть вопросы - задавайте!