Wednesday, October 24, 2012

Wednesday, October 17, 2012

Listing Twitter Followers from Array Text to Excel Spreadsheet


One Friday morning I realized it was #FF Follow Friday, it came to my mind how do I list everyone in text of spreadsheet then just copy paste it so I can promote all of my followers on friday?

Everyone knows that when you click followers in Twitter website it will come out with list complete with all the followers details like username, nickname, description, location and picture of them. If I have few hundred of follower that can be a problem for me to copy every single name to tweet. So I googled 'Listing Twitter Followers' so I end up with results from Twitter API sites, and some forums, after reading I found a very nice example then modified it to make it simpler. Since it was php so it was easy to implement. Just have to download a php compiler, with internet connection this can be done without any server setup of any-kind.

So in the end I came up with this code in pure Php:
1:  <?php  
2:    $cursor = -1;  
3:  $account_from = 'account';  
4:  $result = array();  
5:  do  
6:  {  
7:    $json = file_get_contents('http://api.twitter.com/1/statuses/followers/' . $account_from .'.json?cursor=' . $cursor);  
8:    $accounts = json_decode($json);  
9:    foreach ($accounts->users as $account)  
10:    {  
11:                 $i++;  
12:                 $fudido = array(  
13:          'twitter_id' => $account->id_str,  
14:          'account' => $account->screen_name,  
15:          'description' => $account->description,  
16:        );  
17:        //print $i." ".$fudido['account']."\n";  
18:        array_push($result,$fudido);  
19:    }  
20:    $cursor = $accounts->next_cursor;  
21:  }  
22:  while ($cursor > 0);  
23:  ?>  


  1. $account_from = 'account'  , input your account or anyone's account there.
  2. After  while ($cursor > 0); on line 22, the next line can add print_r($result); to see result in list of arrays.
  3. But our objective is to export this into an Excel file. So printing an array is not useful.
  4. Basically Excel can import text files so we will use this to our advantage and make work more easy. As you can see below a text which data is separated by tab can be converted into tabular form into Excel.


Thus, all we need is to convert all those arrays we took from Twitter into data separated by Tab. So I googled it and found this on Art of Web on how to export Data to Excel and etcetera with Php. The original code was intended to work on a Server because it uses header so the browser will change the filename from php into excel formal. Since I did not install Apache server or whatever and solely running with Php compiler. I removed the part with header and added the File Write(fwrite) function so write a new file directly into the computer, so I have this:
1:  <?PHP  
2:   function cleanData(&$str)  
3:   {  
4:    $str = preg_replace("/\t/", "\\t", $str);  
5:    $str = preg_replace("/\r?\n/", "\\n", $str);  
6:    if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';  
7:   }  
8:  $myFile = "testFile.xls";  
9:  $fh = fopen($myFile, 'w') or die("can't open file");  
10:  $flag = false;  
11:   foreach($result as $row) {  
12:    if(!$flag) {  
13:     fwrite($fh, implode("\t", array_keys($row)) . "\r\n");  
14:     $flag = true;  
15:    }  
16:    array_walk($row, 'cleanData');  
17:    fwrite($fh, implode("\t", array_values($row)) . "\r\n");  
18:   }  
19:   fclose($fh);  
20:   exit;  
21:  ?>  

This will directly convert the Array into text data separated by Tab, which looks like:


The only next thing you need to do is import this pseudo xls file in your Excel, and select only TAB as the separator. To learn more about Php Data Export from Array, read Art of Web .

The end result will be:
Thank you and enjoy your tweeting moments.
, , , , , , ,  

Saturday, March 19, 2011

Arah Tuju Baru



Headsink sebenarnya nama untuk sebuah projek tetapi benda yang dicadangkan untuk headsink secara kolektif telah dilakukan oleh ramai orang, website informasi mengenai komputer.

Sebelum ni blog ni memang tak ada hala tujuan. Sekejap luahan perasaan, sekejap tutorial komputer, karangan luahan jiwa yang orang tak faham. Sebenarnya aku memang ada masalah apa sebenarnya nak disajikan pada masyarakat akan kepala otak Headsink.

Secara peribadi aku ada journal tertulis dalam buku dari zaman sekolah rendah lagi dengan fail 'Microsoft Words' dari tahun 2001. Dalam http://ftmsk.blogspot.com ada coretan minda aku. Headsink punya blog ni agaknya nak kena ada huraian apa yang aku fikirkan.


Aku memang 'No Body' dengan berpegang pada prinsip , 'I AM NOTHING'(NOUN atau Kata Nama) atau ('AKU TAK ADA' dan 'AKU TAK ADA APA'). 'Nothing' dalam bahasa Mat Salleh ni lagi luas, lebih umum maksudnya daripada istilah melayu 'kosong' atau 'tak ada apa'. 'NOTHING' pun berasal dari perkataan Latin 'NIHIL' yang bermaksud KOSONG tapi lebih luas dari kosong merangkumi ketiadaan atau ketidak wujudan kerana ia juga boleh menjadi kata nama.

O.E. naþing, from nan "not one" (see none) + þing "thing." Nothingness "non-existence" first recorded c.1631.
Online Etymology Dictionary, © 2010 Douglas Harper
Hala tuju Headsink tak menentu sebab nak tulis review banyak dah reviewer muzik, seni, sastera, filem, rancangan tv, artis, 'gadget', kereta, kenderaan, senjata serta sekalian objek fizikal semua dah kena review. Aku memang tak berminat bercerita pasal tempat makan paling menarik, produk terbaru, atau mana-mana benda fizikal buatan manusia kecuali buah fikiran di sebalik objek tersebut. Dalam erti kata lainnya aku lagi suka sumber asalnya sesuatu umpama seorang insan dibogelkan terus sari pakaian.

nothing
kb. tidak ada apa-apa. n. but tak lain hanya. n. less than tak kurang dari n. like tak ada lagi (seperti, serupa). n. more than tak lain hanya. to think n. of menganggap tidak penting.
nothing
tidak ada apapun
nothing
tidak berarti, tiada, tidak ada apa-apa
© dwibahasa.com.

Tapi, meluahkan buah fikiran yang mudah difahami oleh masyarakat adalah benda paling susah. Semoga ada idea lebih bernas lagi dari ini.

credit for images:
figure 1: nk link pn tak tau mana tah dia rembat... rembat punya rembat
,  

Saturday, October 23, 2010

Perihal Flag Part 3(Katak Ikut Arahan)

Sebelum ni kita faham JMP iaitu JUMP atau lompat berfungsi. Jadi apa kaitannya?
Segalanya berkaitan dengan arahan CMP. Sebagai contoh

mula:
CMP AX,5
JE mati
JMP mula
mati:

Jika anda memahami post yang sebelum ini mengenai uncondition jump(JMP) anda pasti faham JMP mula bermaksud apa. Sila rujuk ilustrasi dalam pos terdahulu mengania JMP.

Untuk meneruskan pemahaman kita. Anda tertanya apa dia JE? JE atau Jump Equal bermaksud arahan untuk melakukan operasi sama seperti JMP tetapi dengan syarat AX = 5. Walau bagaimanapun dalam Pos yang sebelum ini telah dinyatakan bahawa CMP serupa dengan SUB di mana nilai kiri akan ditolak dengan yang kanan. sebagai cth:
SUB kiri, kanan sama dengan kiri=kiri-kanan
SUB AX, 5 sama dengan AX=AX-5

perbezaan SUB dengan CMP adalah SUB mengubah nilai sebelah kiri tetapi CMP tidak. Walaubagaimanapun kedua-duanya akan mengubah nilai flag.

Seperti contoh yang tadi iaitu:

mula: ;label mula
CMP AX,5 ;Lakukan perbandingan sila rujuk Perihal Flag Part 1
JE mati ; JMP ke mati
JMP mula ;kembali ke mula.
mati: ;label mati

Di atas menunjukkan CMP AX, 5 bermaksud untuk membandingkan nilai AX dengan 5(rujuk Perihal Flag Part 1). JE akan berfungsi seperti JMP seandainya AX = 5 kerana Jump if Equal(JE) bermaksud lompat jika sama. Dalam arti kata lainnya kalau AX = 5 ia akan pergi ke label 'mati'. Jika tidak JMP akan kembali ke mula dan meneruskan operasi.

JE memerlukan AX=5 oleh yang demikian CMP AX,5 akan memastikan AX=AX-5 dan ia akan memberikan nilai 0 yang menyebabkan Zero Flag(ZF) = 1. Arahan seperti JE akan melaksanakan operasi dengan melihat nilai di dalam Flag, bukan perubahan nilai dalam register seperti AX kerana fungsi CMP bukannya mengubah AX.

Selain dari JE terdapat arahan lain seperti JA(Jump if above). Di mana fungsinya sama seperti JE tetapi dengan syarat nilai berpandingan lebih besar. Sebagai contoh

mula:
CMP AX,5
JA mati
JMP mula
mati:

Arahan di atas adalah untuk membandingkan AX dengan 5 tetapi kali ini AX mestilah lebih besar dari 5 (AX>5) untuk ke label 'mati'. Jika tidak ia lompat(JMP) ke label mula. Seperti yang kita fahami sebelum ini ia bergantung pada perubahan flag. Dalam keadaan ini sudah pasti nilai AX lebih besar dari 5. Oleh itu jika AX=AX-5 akan menghasilkan nilai positif tetapi bukan kosong. Dalam post Perihal Flag Part 1 telak dinyatakan keadaan ini menyebabkan ZF=0 dan CF=0. Perubahan flag inilah yang menyebabkan arahan JA melakukan operasinya.

Untuk rujukan lanjut sila rujuk jadual di bawah.















































Arahan Penerangan Flag untunk lompat(JUMP) CMP kiri, kanan
ja jump if above CF=0 dan ZF=0 kiri > kanan
jnbe jump if not below or equal CF=0 dan ZF=0 kiri > kanan
jae jump if above or equal CF=0 kiri >= kanan
jb jump if below CF=1 kiri < kanan
jbe jump if below or equal CF=1 atau ZF=1 kiri <= kanan
je jump if equal ZF=1 kiri == kanan


Jika ada apa-apa komen serta cadangan sila jangan segan silu memberi komen serta menghubungi penulis.
Wassalam.
,  

Friday, October 22, 2010

Perihal Flag Part 2(Lompat Si Katak Lompat)

Sekarang kita tau apa yang berlaku pada Flag semasa operasi Compare(CMP).
Dari sudut bahasa Compare bermaksud Banding. Oleh itu:
CMP AX,2 bermaksud Bandingkan AX dengan 2
CMP kiri, kanan bermaksud Bandingkan kiri dengan kanan.

Seperti yang kita fahami dari artikel yang sebelumnya(Perihal Flag Part 1):
Flag berubah kalau kita Compare(CMP) atau Subtitute(SUB). JUMP(JMP,JE, JB, JG, JGE, JBE) bergantung dengan flag.
Apa gunanya JUMP? Untuk melompat la dari satu 'Label' ke 'Label' yang lain.

Unconditional Jump

Pertama sekali, kita kena faham konsep unconditional JUMP yang menggunakan arahan JMP.

bentuk asas arahan JMP adalah seperti di bawah.
JMP Label
Label: (operasi)

dibawah adalah ilustrasi bagaimana arahan JMP berfungsi

Pertama,

0. JMP pergi ke Label

1. Dalam 'Label' ada arahan JMP ke 'Mahmud'

2.Pergi ke 'Mahmud', dalam ada arahan JMP ke 'Ali'

3.Berakhir dekat 'Ali' sebab takde arahan JMP.

Paham tak?
,  

Perihal Flag Part 1(CMP dan SUB)

Pertama kita akan concentrate dengan 2 jenis Flag:
  1. Carry Flag(CF)
  2. Zero Flag(ZF)
  3. Sign Flag(SF)
Kedua kita akan tengok apa berlaku pada kedua-dua flag ni bila seru command:
  1. Compare(CMP)
  2. Subtitute(SUB)
Command Compare(CMP) dengan Subtitute(SUB) ada persamaan iaitu kedua-duanya melakukan operasi TOLAK. Cth.

SUB AX, BX adalah AX= AX-BX
SUB AX,2 adalah AX=AX-2

beza CMP dengan SUB adalah CMP takkan ubah nilai kecuali flag.
Cth:
CMP AX, BX tidak akan ubah nilai AX seperti sub tetapi akan melakukan operasi sama
CMP AX, 2 juga tidak akan ubah nilai AX seperti diterangkan tadi.

Sekarang mari kita lihat apa yang berlaku pada Flag.
Sebagai contoh sekarang nilai AX= 0002



















ASSEMBLY
AX
Carry Flag(CF)
Zero Flag(ZF)
Sign Flag(SF)
SUB AX,2
0000
0
1
0
CMP AX,2
0002
0
1
0
Di atas kita dapat lihat perbezaan antara SUB dengan CMP dimana CMP tidak mengubah nilai AX tetapi kedua-duanya akan mengubah nilai FLAG.

Cuba perhatikan contoh seterusnya
AX=0002


















ASSEMBLY
AX
Carry Flag(CF)
Zero Flag(ZF)
Sign Flag(SF)
SUB AX,4
FFFE
1
0
1
CMP AX,4
0002
1
0
1

AX=0002 lagi

















ASSEMBLY
AX
Carry Flag(CF)
Zero Flag(ZF)
Sign Flag(SF)
SUB AX,1
0001
0
0
0
CMP AX,1
0002
0
0
0

Berdasarkan pada ketiga-tiga contoh kita dapat rumuskan sebagai:
SUB kiri,kanan sebagai:





















ASSEMBLY
Nilai Kiri
Carry Flag(CF)
Zero Flag(ZF)
Sign Flag(SF)
Kiri = Kanan
0
0
1
0
Kiri < Kanan Negatif
1
0
1
Kiri > Kanan Positif
0
0
0
CMP kiri, kanan sebagai





















ASSEMBLY
Nilai Kiri
Carry Flag(CF)
Zero Flag(ZF)
Sign Flag(SF)
Kiri = Kanan
Tak Berubah
0
1
0
Kiri < Kanan Tak Berubah1
0
1
Kiri > Kanan Tak Berubah0
0
0
Buat masa sekarang itu saja yang mampu diterangkan perihal FLAG. Ada apa-apa persoalan sila nyatakan pada comment atau e-mail atau twitter.
Wallahua'lam.
,  

Monday, September 20, 2010

7 Tips Kegagalan sebagai Seorang Pelajar

Mari kita berkongsi bersama tips-tips kegagalan terutamanya kepada pelajar di luar sana. Kita sudah puas mendengar tips kejayaan tetapi amat sukar untuk mencapainya. Adakah anda pernah terfikir alternatif lain selain dari kejayaan? Sudah pasti kegagalan menjadi sesuatu yang pasti jika kejayaan tidak kecapi. Apakah itu kegagalan? Sudah pasti definisinya tidak mencapai matlamat sebagai contoh, Ali nak makan tapi dia tak ada makanan. Oleh itu Ali gagal makan. Jika seorang pelajar dia mesti menghabiskan pengajiannya untuk berjaya. Jika dia tidak memenuhi syarat untuk tamat belajar, pelajar itu gagal. Di sini saya akan berkongsi tips-tips untuk pelajar terutamanya yang berada di Universiti. Ini adalah untuk kamu.

  1. Katakan "tidak" kepada semua subjek yang anda ambil. Kalau susah tak perlu kata "tidak" kalau cakap "boleh" pun tak guna sebab memang subjek susah, siapa suruh amik.
  2. Pastikan anda membazirkan masa dengan apa-apa aktiviti dari malam sampai pagi. Pastikan tidur lepas matahari terbit, pastikan semangat untuk ke kelas hilang. Kalau ada kelas malam, tidur atau melepak pada waktu terbabit terutamanya waktu kelas.
  3. Hisap dadah kuat-kuat. Hisap dadah banyak-banyak mesti buat anda kurang prestasi. Kalau anda masih lagi berjaya dengan jumlah dadah yang anda ambil sekarang, sila ambil lagi sehingga anda tak mampu lagi.
  4. Tumbuk leturer sampai gigi dia berdarah. Menumbuk Leturer mungkin akan mengakibatkan anda digantung atau kebiasaannya dibuang. Ini adalah tiket kegagalan yang pantas.
  5. Jangan hantar assignment, lab atau tutorial. Jika kehadiran ke kelas memastikan markah gunakan kaedah yang ke-dua tadi.
  6. Bakar terus Fakulti anda, jika anda tak berhati perut bakar dengan staff bersama student sekali. Kalau takde fakulti nak belajar dekat mana? Tak ada lecturer, siapa nak mengajar?
  7. Bunuh diri sebab kalau anda mati anda pasti gagal dalam segala skop kehidupan dunia ini.
Adakah anda ingin gagal? Jika senarai ini tidak mencukupi, pandangan serta cadangan amat dialu-alukan.
,