How To Tweets Your Current iTunes Track

Well, it’s nothing. Last Saturday I’ve stuck in office, have nothing to do but arranging my iTunes collection. Been awake since Friday night, and it seems my sleep disorder haven’t been healed yet :( So while i’m twittering i want also to use my current track played in my iTunes to be posted in twitter.

I remember i’ve made a small python script to do this couple years ago but lost the source code *facepalm* Hmmm, I think i gave the codes to @cothat and @rara79. But it will be rude to wake up those guys just for asking source codes πŸ˜›

I rewrite it all over again, just to get me bored and hopefully sleep after that πŸ˜›

Anyway, these are the codes that make it happen πŸ™‚

You can make it simple and more robust though. I don’t put any exception to check whether my iTunes is running or not (yet) to prevent flooding my timeline with probably blank message πŸ˜›

My previous version will run a loop and sleep couple of seconds. And within that loop it will check is the iTunes playing same song as previous or not. It will post to twitter if new song is detected πŸ™‚ Useful if you like to skip song in the middle.

[cc lang=’python’ ]
“””
simple Python Script to get current track being played in iTunes
and tweet it (and also update your FB status)
dependencies:
– py-appscript, Control AppleScriptable applications from Python
– tweepy, Twitter API for Python

Author: Nuri Abidin
Date: 2012-02-04
“””
from appscript import *
from decimal import *
from ConfigParser import ConfigParser
from optparse import OptionParser
from sys import exit
from time import strftime, sleep, localtime
import string, os, re, sys, tweepy

class nuyTwiTunes:
def __init__(self, config_file=””):
config = self.getconf(config_file)
self.twitter_consumer_key = config[‘consumer_key’]
self.twitter_consumer_secret = config[‘consumer_secret’]
self.twitter_access_token = config[‘access_token’]
self.twitter_token_secret = config[‘token_secret’]
self.print_console(‘Initiating the application…’)

# just printing formatted text to console
def print_console(self, s):
t = strftime(‘%Y-%m-%d – %X’)
print “%s %s” % (t,s)

# read the config file
def getconf(self, config_file):
param = {}
c = os.path.expanduser( config_file )

if not os.path.exists(c):
self.print_console(‘ERROR: No configuration file: %s’ % c)
exit(1)

conf = ConfigParser()
conf.read(c)

#read config items to dictionary
for section in conf.sections():
for items in conf.items(section):
param[items[0]] = items[1]
return param

# ‘read’ the current track being played in iTunes
def get_itunes_track(self):
myApp = app(‘iTunes’)
mySong = (“%s – %s” % (myApp.current_track.artist(), myApp.current_track.name()) )
songTime = myApp.current_track.time();
timeChunks = string.split(songTime, “:”)
playingTime = (Decimal(timeChunks[0]) * 60) + Decimal(timeChunks[1])
return mySong, playingTime

# post to twitter
def post_tweet(self, the_tweet=”Hai ^_^”):
auth = tweepy.OAuthHandler(self.twitter_consumer_key, self.twitter_consumer_secret)
auth.set_access_token(self.twitter_access_token, self.twitter_token_secret)
api = tweepy.API(auth)
api.update_status(the_tweet)

# post current iTunes track to twitter
def tweet_the_tunes(self):
# play and sleep until track changes
while True:
(track_name, play_time) = self.get_itunes_track()
tweet = “iPlay: %s ^_^ #fb” % (track_name)
self.print_console(“%s –%s seconds–” % (tweet,play_time) )
self.post_tweet(tweet)
sleep(play_time)

def main():
usage = “usage: %prog [options]”
parser = OptionParser(usage=usage)
parser.add_option(‘-c’, ‘–config’,
dest=”config_file”,
default=”nuy_tunes.conf”,
)
(options, args) = parser.parse_args()

try:
if options.config_file:
config_file = options.config_file
else:
config_file = “./nuy_tunes.conf”

my_tunes = nuyTwiTunes( config_file )
my_tunes.tweet_the_tunes()
except:
raise
parser.print_help()
exit(1)

if __name__ == “__main__”:
main()
[/cc]

and the configuration file is simply like this

[cc lang=’python’ ]
[twitter]
consumer_key = your_twitter_consumer_key
consumer_secret = your_twitter_consumer_secret
access_token = your_twitter_access_token
token_secret = your_twitter_token_secret
[/cc]

Once more thing …
You need to use a Mac to do this πŸ˜›
Having one is a good thing πŸ˜›

*yawn*
and blogging this script make me feel sleepy already …

Firefox 10

Jadi, weekend kemarin dengan koneksi internet seadanya saya coba update browser Mozilla Firefox macbook pro ke versi 10. Terbilang cukup telat sih karena rilisnya sendiri sekitar 31 Januari kemarin. Yah apa boleh buat, updatenya saya set manual πŸ™‚

firefox 10

 

Di versi 10 ini Mozilla menawarkan beragam fitur khususnya untuk para web developer, sementara itu untuk pengguna biasa adalah kecepatan update (yang lebih cepat tentunya) dan kompatibilitas yang lebih baik akan add-on add-on yang ada sekarang. Yang dimaksud di sini adalah sebagian besar add-ons Firefox versi 4 ke atas. Add-ons tersebut akan ditandai sebagai “compatible” dengan Firefox 10 secara otomatis. Jadi tidak perlu lagi ada update tambahan dari developernya. Jadi yang sebelumnya sempat ngedumel kalo tiap kali upgrade versi add-ons nya banyak yg ga jalan sekarang boleh cengar-cengir tenang πŸ™‚

firefox 10 addons

Kemudian ada menu Inspect Element seperti yang ada di Google Chrome. Nah ini salah satu tools favorit saya kalo di Chrome, dan ini pasti akan bikin hepi banyak web developer juga. Kalau di versi sebelumnya Firefox sudah dilengkapi dengan Web Console, DOM inspector sederhana. Di versi 10 ini Firefox menyediakan seacam panel terintegrasi untuk developer dengan DOM inspector yang lebih lengkap, juga tool untuk view-modif property CSS. Dan animasi DOM inspectornya lebih keren daripada Chrome πŸ™‚ Ga butuh lagi Firebug kalo kaya gini.

firefox 10 dom

Javascript ScratchPad, javascript editor lengkap dengan syntaxt highlighting-nya. Jadi kita bisa coding jscript langsung testing n lihat hasilnya di halaman web yang kita buat.

Selain itu, FF10 juga telah mendukung CSS 3D transform, full-screen API yang tentunya akan berguna sekali untuk web-based app yang memang butuh kapabilitas full screen supaya lebih optimal. Mirip Safari dengan full-screen support dari OSX Lion. Chrome juga ada sih. Versi berikutnya nanti akan support WebGL buat 3D web app. Kerennnn.

FF10 juga merupakan rilis pertama browser Mozilla yang ditawarkan sebagai Extended Support Release (ESR). Analoginya mungkin mirip dengan Ubuntu Long Time Support (LTS), cuman yang ESR ini kayanya buat setahun ajah. Yah mengingat update cycle Firefox sekarang kan cukup cepat tuh, per 6 minggu.

Notes from Wikufest 2012 – part 1

Tanggal 19 Januari kemarin saya berkesempatan mudik ke kota tercinta Malang.
Yah, walau tak sedingin dulu yang jelas macetnya mau saingan dengan Jakarta πŸ™‚ Mudik kali ini tidak hanya karena long weekend karena ada libur Imlek hari Seninnya, tapi saya dan beberapa rekan membawa misi khusus.

Misi tersebut mempunyai nama WikuFest 2012 atau Wikusama Festival yang di adakan di sekolah kampus STM SMK Telkom Sandhy Putra Malang pada tanggal 20-21 Januari 2012. Wah, Sawojajar telah berubah Ò€¦ drastis.

Wikufest ini adalah sebuah acara yang digagas oleh dan juga merupakan sumbangsing dari para alumni STM (ok, SMK) Telkom Sandhy Putra Malang untuk almamater tercintanya. Wikufest ini lebih semacam festival knowledge sharing yang membahas tentang dunia ICT, berbagi pengalaman hidup para alumni dan juga tren bisnis.

Saya ga akan bertele-tele, rilis resmi latar belakang acara ini bisa baca di sini πŸ™‚

Harapan kami sederhana. Sekedar ingin berbagi wawasan kepada adik-adik kelas akan apa yang ada di dunia luar dinding kampus tercinta ini. Implikasinya semoga jadi dopping penambah semangat, membakar motivasi dan menumbuhkan kreativitas terpendam yang selama ini tidur atau bahkan malu untuk dimunculkan. At the end, these young guns can set their goal of life earlier, so they will have enough to prepare anything for that.

Selain menambah erat rasa kekeluargaan dan saling memiliki antara alumni dan siswa, ini juga jadi ajang latihan bagi kami (well, most of us) untuk publik speaking heheheheh, untuk lebih banyak berbagi. Seperti donor darah lah. Sekian mili yang kita donorkan akan membantu orang lain, sebagai gantinya tubuh kita akan memproduksi darah segar penggantinya *berasa narasi film vampir gini*

Anyway,
Soal skill, adik-adik angkatan 18-19 ini cukup membuat kami terpukau. Awalnya saya pribadi juga Cak Adi Wahyu yang ketum ingin lebih membahas mengenai potensi mobile services. Karena hal ini sepertinya barang baru. Melihat kurikulum kok kayanya berat ke web programing. PHP lagi PHP lagi, saya dah bosen.

Yah dugaan itu benar. Lomba bikin mobile apps untuk printing dari ponsel ke portabel printer gagal karena ga ada yang submit. Tapi Ò€¦ ada tapinya nih. Some of them actually in the process of making the apps. But timeline is too short.
Saat closing acara, ada demo 2 aplikasi mobile yang itu semuanya membuat saya terpukau. Wow!!! Bravo.

Yah, sip lah. Bisa ngomporin adik-adik buat mulai iseng2 bikin sesuatu di ponsel mereka masing. Kalau susah native programming, bisa bikin versi mobile web atau yg hybrid pakai phonegap, sencha atau appcelerator πŸ™‚

Well, animo adik-adik ternyata sangat menggembirakan. Insya Allah ini akan dijadikan acara tahunan. Kita akan coba di 2013 nanti. Terima kasih untuk para panitia, teman-teman alumni. Mohon maaf juga untuk teman seangkatan yang masih saya ledekin. Farisy n Ahot, asline aku ngiri ama kebesaran kalian. Tingkat ketebalan saya ga segitu nambah dibanding jaman sekolah dulu. Hehehehe
Eh iya, ada juga alumni junior yang kena ‘bully’ juga n ternyata taunya dah jadi guru di almamater tercinta ini. Maaf lho, Pak Mas eh Pak YouKnowWho *rofl*

Ulasan yang lebih mendalam bisa baca tulisan-tulisan dari Cak Usma berikut ini
http://edukasi.kompasiana.com/2012/01/23/selamat-dan-sukses-wikufest-2012/
http://cakusma.blogdetik.com/

Hmm, adik-adik ternyata banyak yang blogging. Tapi kok ga nemu yah postingan yang membahas before-and-after wikusama. Ayo dong pada nulis. Buat masukan untuk kami juga guna mempersiapkan acara berikutnya πŸ™‚

Happy New Year 2012

This is it.
Happy New Year 2012
Let’s see whether the Mayan Calendar prophecy about year 2012 is going to happen or not ^_^

It Takes a Long Time To Grow Young

Tanggal 11 kemarin seorang teman merayakan ulang tahunnya dan entah kenapa yang keingat di kepala adalah kalimat di atas yang saya jadikan ucapan selamat ulang tahunnya πŸ™‚ Beberapa hari ini di otak saya berseliweran kalimat-kalimat aneh yang saya ga ingat pernah baca di mana.

And it feeling absurd when you have to google something you’ve been said πŸ™‚ Yah, @aniseddit said it was “the most unique statement” in her birthday πŸ˜›

It Takes a Long Time To Grow Young ~ Picasso

Jadi gini ceritanya, ulang tahun itu identik dengan bertambahnya umur = bertambah tuanya seseorang. And it’s something for somebody. Kalo saya? Saya pingin terus merasa muda, bersemangat, penuh dengan energi tiap hari. Energi dan semangat adalah bahan bakar kreatifitas πŸ™‚ Dan kreatifitas sering kita lihat di dalam diri anak-anak.

It is not like I want to be a kid again, but I wanna try to reconnect the dots from my youth time and be more present to the expreiences of life. Ingatlah masa kecil (oke deh, masa muda) kita dulu. Kalo ga karena impian, cita-cita masa kecil dulu kita ga akan menjadi seperti sekarang ini. Oke deh mungkin ga 100% sama seperti impian masa kecil, tapi bukan itu konteksnya πŸ™‚

Kalo kita ingat masa kecil dulu mungkin kita akan tertawa sendiri. Bagaimana cupunya kita dulu dalam bermain dan ajaibnya jawaban-jawaban kita saat ditanya apa cita-cita kita saat besar nanti. Tapi bukan bertindak hal-hal lucu yang aku ingin angkat di sini. Tapi bagaimana kita dulu melakukan segala sesuatu dengan kegembiraan. It’s not about doing fun things but being fun when doing many things. Fun, fearless, full of happiness identik dengan anak kecil (ok ok ok, anak muda)

Di buku tahunan sekolah dulu di kolom pesan-kesan saya menulis “belajar, bekerja, berdoa serta jalani hidup dengan gembira”. Dan dengan itulah semangat dan energi hidup akan terus menyala. That’s my survival kit.

Dengan melihat ke masa kecil (iya, iya masa muda) kita dapat melihat apa saja yang telah melenceng dari sikap hidup kita. Mau itu sikap hidup yang baik maupun buruk, rahasianya ada di sana. Kebetulan hari Sabtu kemarin sempat maen ke fX dan ada pameran & lelang lukisan Picasso-Picasso muda yang berumur 5-8 tahun dari Rumah Main Cikal. Awesome!!! Jauh menarik perhatian saya dibandingkan festival foto yang juga sedang berlangsung di sana.

Kayanya lukisan jagoan-jagoan kecil ini yang mengingatkan saya akan kalimat Picasso di atas.

Hasil karya anak-anak Rumah Main Cikal di fX

Buat @aniseddit @anakpanda @imansyah, eunice, @faygoofe, @kapkap, bernhard, @decynug, @dhiemazt, idban, kumi, @niwat0ri, @godril dan semua yang berulang tahun bulan Desember ini, happy birthday.

Hmmm, entah kenapa saya ngerasa kok foto Pablo Picasso di Wikipedia mirip ama Bruce Willis yah? Dah mo jam 3 pagi, saatnya bobo bentar

Kamera – Remote – iPhone

Saya asumsikan kalian semua tahu apa itu Flickr, layanan berbagi foto dari Yahoo. Tahukah kalian kamera apa yang paling populer di Flickr?

Nikon? D90 sempat nomor 2 sih
Canon? bukan, walaupun 5D Mark II dah mengambil alih posisi D90
Pentax? ngga
Olympus? apa lagi

Flickr Popular Camera
Yahoo!Flickr 2011-11-13

Jawara kamera di Flickr justru perangkat yang tidak dikategorikan sebagai kamera sama sekali, yaitu iPhone. iPhone 3/3Gs pernah menjadi jawara, dan kini posisinya masih dipegang oleh iPhone4.

Di kategori ‘camera phone‘ iPhone4, iPhone3, iPhone3Gs menduduki 3 besar. Bahkan iPod Touch generasi terakhir yang dilengkapi dengan kamera masuk 5 besar di bawah HTC EVO 4G

Karena populernya iPhone (kamera ponsel pada umumnya) banyak aksesoris yang telah dibuat oleh pihak ketiga. Contohnya adalah lensa tambahan baik itu tele-wide-macro-fish eye. Bahkan ada vendor yang membuat perangkat yang dikhususkan untuk iPhone yang memungkinkan kita untuk menggunakan lensa kamera profesional (seperti lensa Canon/Nikon)

Lihat saja OWLE Bubo + EnCinema atau iPhone SLR Mount

Nah, perangkat produksi Apple selain membuat penggunanya lebih kreatif rupayanya membuat produsen aksesoris juga ikut kreatif -imo- Menyusul aksesoris yang saya sebutkan di atas, Belkin menciptakan sebuah perangkat yang akan membuat para iphoneographer ini akan gembira. Sebuah remote kamera.

Lho? Kan sudah ada berbagai macam aplikasi remote kamera tuh buat iPhone?

Tet tottt…..

As I said before, it’s a device not an app (well +an app actually).

Belkin LiveAction Camera Remote - belkin.com

Belkin menyebutnya ini sebagai LiveAction Camera Remote. Bersama dengan Belkin LiveAction App, para iPhonegrapher dapat secara instan mentrigger iPhone-nya untuk mengambil gambar dengan kamera iPhonenya baik itu foto maupun video via Bluetooth. Dan Belkin ga berhenti sampai situ ajah. Belkin LiveAction App nya sendiri selain dapat digunakan sebagai aplikasi utama pengambilan foto (ga lagi pake CameraApp bawaan iOS), dia dapat juga digunakan untuk terkoneksi dengan perangkat Belkin lainnya seperti LiveAction Camera Grip, LiveAction Camera Remote dan LiveAction Concert Mic.

Dilansir dari Belkin.com, harga perangkat ini adalah $49.99. Sayangnya barang masih belum tersedia, entah kapan. Hmm, harus rajin mantengin belkin.com dan siapin paypal untuk online shopping nih rupanya.

Referensi: