Improvisasi

Salah satu fitur yang ada di OS X adalah penyuaraan tulisan alias “Text to Speech”. OS X menyediakan sebuah aplikasi command line yang memungkinkan kita untuk meyuarakan tulisan apa saja yang kita masukkan

$ say "How are you?"

Dari sekian penyuara yang tersedia, salah satunya adalah Damayanti yang bisa menyuarakan Bahasa Indonesia

$ say -v Damayanti "Apa kabar?"

Ternyata si Damayanti ini bisa berimprovisasi menambahkan kata yang tidak kita tuliskan di sana. Coba saja jalankan perintah berikut.

$ say -v Damayanti "Sudah 5 hari aku berdiri selama 5 menit dan 5 detik setiap 5 jam"

Python 32bit di Snow Leopard

Python 2.6.1 bawaan Snow Leopard ternyata secara default bekerja dalam mode 64bit. Pada beberapa kasus, hal ini bisa membawa masalah misalnya jika bekerja dengan pustaka lain yang tidak menyediakan versi 64bit. Contohnya adalah pustaka QuickTime yang digunakan oleh Pyglet.

$ python coba-pyglet.py
Traceback (most recent call last):
  ...
  File "build/bdist.macosx-10.6-universal/egg/pyglet/lib.py", line 226, in load_framework
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/__init__.py", line 423, in LoadLibrary
    return self._dlltype(name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/__init__.py", line 345, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(/System/Library/Frameworks/QuickTime.framework/QuickTime, 6): no suitable image found.  Did find:
    /System/Library/Frameworks/QuickTime.framework/QuickTime: no matching architecture in universal wrapper
    /System/Library/Frameworks/QuickTime.framework/QuickTime: no matching architecture in universal wrapper

Kalau dicek, memang pustaka tersebut tidak mengandung versi 64 bit.

$ file /System/Library/Frameworks/QuickTime.framework/QuickTime
/System/Library/Frameworks/QuickTime.framework/QuickTime: Mach-O universal binary with 2 architectures
/System/Library/Frameworks/QuickTime.framework/QuickTime (for architecture i386):   Mach-O dynamically linked shared library i386
/System/Library/Frameworks/QuickTime.framework/QuickTime (for architecture ppc7400):    Mach-O dynamically linked shared library ppc

Lalu caranya gimana? Ternyata manual python di Snow Leopard sudah memberitahukan informasi ini 😀

$ export VERSIONER_PYTHON_PREFER_32_BIT=yes

Cukup mengeset environment variable seperti di atas dan jalankan Python seperti biasa. Python akan dijalankan dalam mode 32 bit dan masalah di atas pun tidak ada.

Kalau ingin diset secara default, maka jalankan perintah berikut.

$ defaults write com.apple.versioner.python Prefer-32-Bit -bool yes

Setiap Python yg dijalankan setelah ini akan secara otomatis berjalan di bawah mode 32 bit. Ganti nilai yes menjadi no untuk mematikannya alias mengembalikan agar berjalan dalam mode 64 bit secara default.

Setup NAT di Mac OS X

Ceritanya saya lagi make VirtualBox. Untuk konfigurasi jaringannya, saya ngga mau memakai tipe NAT karena saya ingin mengakses mesin virtual yg ada dengan mudah. Maka dari itu, saya pilih Host-only Adapter dan memilih vboxnet0 sebagai network interface tetangga yg terpasang di host.

Pertanyaan berikutnya, bagaimana agar seluruh koneksi dari guest bisa diteruskan ke Internet? Ternyata pengaturan internet sharing tidak dapat mengenali vboxnet0 yang digunakan. Oleh karena itu, NAT di host mesti diatur scr manual. Inilah caranya.. tiga perintah ajaib.. hehe..

$ sudo sysctl -w net.inet.ip.forwarding=1
$ sudo natd -interface en1
$ sudo ipfw add divert natd ip from any to any via en1

Network interface en1 di sini adalah network interface yg terhubung dg Internet.

Referensi: http://www.osxfaq.com/ReaderReports/NAT_PPP/index.ws

Yang janggal adalah..

Pada tulisan saya sebelumnya, saya membuat sebuah kuis kecil. Namun sepertinya belum ada yg ngeh apa yg janggal 😛 Setidaknya yg sesuai dg yg saya pikirkan.

Jawaban yg saya maksud bisa dilihat pada nomor 4 di sana.

[email protected] /Library/Printers
$ rm -rf *

Saya, tanpa menggunakan akses root, bisa menghapus isi direktori /Library/Printers! Kalau menurut saya, direktori ini bukan berada di wilayah user biasa dan seharusnya hanya bisa dimodifikasi oleh root. Andaikan bisa oleh user biasa, elevasi hak akses rasanya tetap diperlukan (misalnya dg sudo).

User pertama yg dibuat di Mac OS X memang termasuk dalam grup admin yang memang memiliki hak khusus untuk menjalankan sudo. Sama persis dg yg ada di Ubuntu. Namun ternyata direktori-direktori sistem yang ada tidak selalu mewajibkan akses root ini. Contohnya ya direktori /Library/Printers itu.

[email protected] /Library
$ ls -l | grep Printers
drwxrwxr-x    3 root  admin   102 Aug 12 15:06 Printers

Direktori tersebut membolehkan akses tulis oleh user dalam grup admin. Artinya siapa saja yg termasuk dalam grup admin dapat mengubah isi direktori tersebut secara langsung tanpa perlu menggunakan sudo.

Direktori serupa lainnya adalah /Applications yang biasa menjadi lokasi meletakkan bundle aplikasi. Instalasi aplikasi di Mac OS X memang sangat gampang. Buka arsip aplikasi, lalu drag-and-drop bundle aplikasi ke direktori tersebut. Voila! aplikasi sudah siap digunakakn. Untuk menghapusnya, cara sebaliknya dilakukan. Cukup drag-and-drop bundle aplikasi di /Applications ke Trash! Tentu saja sampah-sampah aplikasi tersebut tidak ikut terbuang. Makanya ada aplikasi semacam AppTrap dan AppZapper yang membantu menghapus sampah-sampah yg ada.

Kembali ke masalah permission, saya belum mencari tahu alasan dibaliknya. Mungkin saja keputusan rancangan yg ada memang seperti ini. Tapi seharusnya, menurut saya, ada alasan kuat di belakangnya.

Mengecilkan ukuran fonta tema GTK+ di Inkscape di Mac OS X

Saya baru saya menginstall Inkscape di Mac OS X. Setelah dijalanin, kok ukuran fontanya besar sekali ya?

Setelah nyari2 info, ternyata katanya saya bisa mengecilkan ukuran fonta dengan menyunting berkas konfigurasi tema GTK+ yang digunakan. Setelah nyari2 dan nyoba2, berkas yang perlu disunting adalah berkas berikut ini.

/Applications/Inkscape.app/Contents/Resources/themes/Clearlooks-Quicksilver-OSX/gtk-2.0/pre_gtkrc

Sunting berkas tersebut, cari gtk-font-name dan ubah isinya. Misalnya menjadi seperti berikut ini.

gtk-font-name="Lucida Grande 8"

Buka lagi Inkscape-nya dan lihat sendiri perbedaannya =D

Cara ngosongin 2.9GB

Buka Terminal.app, lalu..

  1. Cek kondisi awal

    $ df -h
    Filesystem      Size   Used  Avail Capacity  Mounted on
    /dev/disk0s2    88Gi   20Gi   68Gi    23%    /
    
  2. Pindah ke direktori yg “bikin masalah”

    $ cd /Library/Printers/
    
  3. Cek ukuran direktorinya

    [email protected] /Library/Printers
    $ du -hs
    2.9G    .
    
  4. Berhubung saya gak make printer maka.. bantai!

    [email protected] /Library/Printers
    $ rm -rf *
    
  5. Setelah pembantaian, sisa harddisk menjadi..

    $ df -h
    Filesystem      Size   Used  Avail Capacity  Mounted on
    /dev/disk0s2    88Gi   17Gi   71Gi    20%    /
    

Yap, operasi kali ini sukses besar!

Kuis: ada yg bisa nebak hal janggal yang ada? 🙂

Legal itu ..

.. bukan cuma berarti beli dari vendor.

Tapi juga mengikuti ketentuan yang berlaku.

Contoh: beli Mac OS X dari Apple. Oh jelas boleh sah. Legal? blom relevan tuk dibicarakan kalau cuma sampe sini saja.

Sistem operasi tsb lalu dipasang di komputer. Pertanyaan berikutnya, komputer apa? keluaran Apple? kalo tidak, weitss.. jangan asal mengklaim sistem operasi itu legal.

Dari

> **2. Permitted License Uses and Restrictions.**

> A. Single Use. This License allows you to install, use and run one (1) copy of the Apple Software on a single Apple-labeled computer at a time. You agree not to install, use or run the Apple Software on any non-Apple-labeled computer, or to enable others to do so. This License does not allow the Apple Software to exist on more than one computer at a time, and you may not make the Apple Software available over a network where it could be used by multiple computers at the same time.

Bagaimana dengan komputer “biasa” yang menjalankan Mac OS X alias Macintosh clone? Kalau baca di [wikipedia](http://en.wikipedia.org/wiki/Macintosh_clone#Macintosh_cloning_today), praktik seperti ini memang tidak diperbolehkan/diizikan oleh Apple.

Contoh lain: Database Oracle.

Pada tahu kan kalau perangkat lunak ini bisa didownload secara bebas? Coba cek .

Walau bebas didownload, bukan berarti bisa digunakan secara bebas. Coba cek tulisan yg tertulis di sana

> All software downloads are free, and each comes with a Development License that allows you to use full versions of the products at no charge while developing and prototyping your applications (or for strictly self-educational purposes). In some cases, certain downloads (such as Beta releases) have licenses with slightly different terms.

Yang saya tangkap adalah produk Oracle hasil download tersebut hanya datang dengan lisensi pengembangan yang hanya mengizinkan penggunaan dalam tahap pengembangan juga. Ingin menggunakan tuk keperluan produksi? silakan beli lisensi yang sesuai.

Tolong koreksi kalau saya salah.

Memperbaiki Backspace di screen dalam Terminal Mac OS X

Kalau make screen di mesin lain dari Terminal di Mac OS X, saya tidak bisa menggunakan tombol Backspace sebagaimana mestinya. Walau saya masih bisa menggunakan kombinasi tombol Ctrl+H, tetap saja masalah ini membuat saya kesal.

Teryata solusinya mudah sekali, cukup jalankan perintah berikut dan masalah hilang =D

$ export TERM=xterm

Set variabel tersebut sebelum membuka screen. Jika ingin nilai TERM selalu diset dengan xterm, jalankan saja perintah berikut.

$ defaults write com.apple.Terminal TermCapString xterm

Cukup jalankan perintah di atas satu kali. Buka ulang Terminal yang ada agar perubahan diterapkan.

Referensi: http://atomized.org/2006/05/fixing-backspace-in-screen-in-terminal-on-os-x/

Menutup (banyak) aplikasi dengan cepat di Mac OS X

killall? ah ribet =P Cmd+Q? musti mengaktifkan aplikasinya dulu dong..

Lalu? Pertama2, buka application switcher dengan Cmd+Tab dan tahan tombol Cmd-nya supaya switcher-nya tidak tertutup. Untuk memilih aplikasi, tombol Tab dapat ditekan beberapa kali atau langsung saja pilih dengan menggunakan mouse.

Kalau tombol Cmd dilepas, maka aplikasi terpilih akan aktif dan muncul di depan. Namun jika tombol q ditekan, maka aplikasi terpilih akan ditutup! Kalau tombol Cmd tetap ditahan, maka aplikasi lain dapat dipilih dan ditutup. Cepat kan?

Kesimpulan: tekan Cmd+Tab dan tahan tombol Cmd-nya. Pilih aplikasi (dengan Tab atau menggunakan pointer mouse) lalu tekan tombol q untuk menutup aplikasi terpilih.

Keterangan tambahan: tombol Cmd itu tombol yg ada logo Apple 