<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MadeJunes[dot]net &#187; kuliah</title>
	<atom:link href="http://madejunes.net/category/kuliah/feed/" rel="self" type="application/rss+xml" />
	<link>http://madejunes.net</link>
	<description>personal blog ov MoronCoder</description>
	<lastBuildDate>Thu, 15 Jul 2010 02:46:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Lumayanlah</title>
		<link>http://madejunes.net/2009/08/lumayanlah/</link>
		<comments>http://madejunes.net/2009/08/lumayanlah/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 13:31:18 +0000</pubDate>
		<dc:creator>MoronCoder</dc:creator>
				<category><![CDATA[kuliah]]></category>

		<guid isPermaLink="false">http://madejunes.net/?p=510</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://photos-a.ak.fbcdn.net/hphotos-ak-snc1/hs175.snc1/6575_1216909266886_1353496973_30615960_276203_n.jpg" alt="" width="444" height="603" /></p>
]]></content:encoded>
			<wfw:commentRss>http://madejunes.net/2009/08/lumayanlah/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lighttpd Sebagai Web Server Alternatif Selain Apache</title>
		<link>http://madejunes.net/2008/12/lighttpd-sebagai-web-server-alternatif-selain-apache/</link>
		<comments>http://madejunes.net/2008/12/lighttpd-sebagai-web-server-alternatif-selain-apache/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 10:09:43 +0000</pubDate>
		<dc:creator>MoronCoder</dc:creator>
				<category><![CDATA[kuliah]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://madejunes.net/?p=219</guid>
		<description><![CDATA[Lighttpd (diucapkan dengan “lightly”) adalah sebuah web server yang didesain aman, cepat, sesuai standar, dan fleksibel untuk dioptimasikan pada speed-critical environments. Awalnya, lighttpd ditulis oleh seorang programmer Jerman bernama Jan Kneschke (yang juga bekerja untuk MYSQL). Web server yang alamat &#8230; <a href="http://madejunes.net/2008/12/lighttpd-sebagai-web-server-alternatif-selain-apache/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lighttpd (diucapkan dengan “lightly”) adalah sebuah web server yang didesain aman, cepat, sesuai standar, dan fleksibel untuk dioptimasikan pada speed-critical environments. Awalnya, lighttpd ditulis oleh seorang programmer Jerman bernama Jan Kneschke (yang juga bekerja untuk MYSQL). Web server yang alamat websitenya di <a href="http://lighttpd.net/" target="_blank">http://lighttpd.net/</a> ini ditulis dalam bahasa pemrograman C. Dapat dijalankan pada sistem operasi Linux dan sistem operasi Unix-like lainnya, serta dapat pula dijalankan pada sistem operasi Windows. Lighttpd bersifat open source dan didistribusikan dengan lisensi BSD.<br />
Lighttpd mengklaim <span id="more-219"></span>dirinya sebagai web server yang “memakan” sedikit space memori jika dibandingkan dengan web server lain. Selain itu lighttpd mempunyai kemampuan untuk mengatur cpu-load secara efektif dan beberapa fitur advance seperti FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting dan lain-lain. Secara lengkap, fitur-fitur yang disediakan oleh lighttpd adalah sebagai berikut.</p>
<ul>
<li> Load-balancing FastCGI, SCGI, dan HTTP proxy support</li>
<li> chroot support</li>
<li> web server berbasis select()-/poll()-/epoll()</li>
<li> Support untuk skema notifikasi event yang lebih efisien seperti kqueue dan epoll</li>
<li> Conditional rewrites (mod_rewrite)</li>
<li> SSL dan TLS support, via OpenSSL.</li>
<li> Otentikasi terhadap sebuah server LDAP</li>
<li> Statistik RRDtool</li>
<li> Rule-based downloading dengan kemungkinan penanganan sebuah script hanya otentikasi</li>
<li> Server Side Includes support</li>
<li> Virtual hosting yang fleksibel</li>
<li> Modules support</li>
<li> Cache Meta Language (saat ini sedang diganti mod_magnet) menggunakan bahasa pemrograman Lua</li>
<li> Minimal WebDAV support</li>
<li> Servlet (AJP) support (pada versi 1.5.x ke atas)</li>
<li> HTTP compression menggunnakan mod_compress dan  mod_deflate terbaru (1.5.x)</li>
<li> Berukuran kecil (kurang dari 1 MB)</li>
<li> Desain single-process hanya dengan beberapa thread. Tidak ada proses atau thread dimulai per koneksi.</li>
</ul>
<p>Dengan semua fitur dan kelebihannya, lighttpd sangat cocok digunakan untuk aplikasi-aplikasi web yang termasuk kategori Web 2.0. Beberapa situs-situs Web 2.0 populer yang menggunakan lighttpd antara lain YouTube (http://youtube.com), wikipedia (http://wikipedia.org), dan meebo (http://meebo.com).<br />
Kenapa kita harus menggunakan lighttpd jika sudah ada Apache yang merupakan market leader dalam dunia web server? Selain karena kelebihan dan fitur-fitur yang ditawarkan oleh lighttpd yang sudah disebutkan di atas, ternyata Apache mempunyai beberpa kekurangan yang dapat membuat kita harus berpikir untuk menggunakan web server alternatif, selain Apache. Apache menyediakan berbagai Model Multi-Processing untuk digunakan di berbagai runtime environment. Model Prefork &#8212; yang paling populer di Linux &#8212; membuat sejumlah proses Apache pada saat startup dan mengelola mereka pada sebuah pool. Alternatif model worker menggunakan multiple thread, bukan proses. Walaupun thread lebih ringan daripada proses, kita tidak dapat menggunakannya kecuali seluruh server bersifat threadsafe. Meskipun Apache dan mod_php bersifat threadsafe, hal ini tidak dijamin untuk semua modul pihak ketiga  yang mungkin digunakan. Situs yang berbasis PHP mengecilkan penggunaan Apache 2 dengan MPM ber-thread; ini mungkin telah memperlambat pergerakan developer dari Apache 1.3 ke Apache 2.0. Namun, model prefork memiliki masalahnya sendiri: setiap proses (Apache + PHP + modul pihak ketiga) mengkonsumsi banyak space memori (30MB adalah hal yang tidak biasa). Jika kita kalikan hal ini dengan jumlah proses-proses Apache secara simultab, space RAM yang tersedia akan berkurang dengan cepat. Lighttpd saat ini sudah menjadi kompetitor kuat bagi Apache –khususnya jika memory yang tersedia terbatas atau workload terdiri dari banyak file status. Lighttpd (sesuai namanya) adalah web server yang ringan dan “ringan itu baik”.</p>
<p>Referensi :</p>
<p>http://www.lighttpd.net/</p>
<p>http://en.wikipedia.org/wiki/Lighttpd</p>
<p>http://www.onlamp.com/pub/a/onlamp/2007/04/05/the-lighttpd-web-server.html</p>
]]></content:encoded>
			<wfw:commentRss>http://madejunes.net/2008/12/lighttpd-sebagai-web-server-alternatif-selain-apache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blocked Sort-Based Indexing Algorithm</title>
		<link>http://madejunes.net/2008/10/blocked-sort-based-indexing-algorithm/</link>
		<comments>http://madejunes.net/2008/10/blocked-sort-based-indexing-algorithm/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 18:58:02 +0000</pubDate>
		<dc:creator>MoronCoder</dc:creator>
				<category><![CDATA[kuliah]]></category>

		<guid isPermaLink="false">http://madejunes.net/?p=86</guid>
		<description><![CDATA[Langkah-langkah dasar dalam membangun sebuah non-positional index antara lain sebagai berikut. Pertama, kita membuat sebuah pass melewati document collection dengan membangun semua pasangan term-docID. Kemudian pasangan-pasangan tersebut diurutkan dengan term sebagai key yang dominan dan docID sebagai secondary key. Terakhir, &#8230; <a href="http://madejunes.net/2008/10/blocked-sort-based-indexing-algorithm/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" src="http://nlp.stanford.edu/IR-book/html/htmledition/img180.png" alt="" width="558" height="356" /></p>
<p>Langkah-langkah dasar dalam membangun sebuah <em>non-positional</em> index antara lain sebagai berikut. Pertama, kita membuat sebuah <em>pass</em> melewati document collection dengan membangun semua pasangan <em>term-docID</em>. Kemudian pasangan-pasangan tersebut diurutkan dengan <em>term</em> sebagai <em>key</em> yang dominan dan <em>docID</em> sebagai <em>secondary key</em>. Terakhir, <em>docID</em> untuk setiap <em>term</em> diatur ke dalam sebuah daftar <em>postings</em> dan dilakukan perhitungan statistik <em>term</em> dan <em>document frequency</em>. Untuk <em>document collection</em> yang ukurannya kecil, langkah-langkah tadi bisa dilakukan di memori. Pada pembahasan ini akan dijelaskan metode-metode untuk <em>document collection</em> berukuran besar yang membutuhkan penggunaan <em>secondary storage</em>.</p>
<p>Untuk membuat pembangunan index lebih efisien, <em>term</em> direpresentasikan sebagai <em>termID</em> yang mana masing-masing <em>termID</em> adalah sebuah nomor seri yang unik. Pemetaan dari <em>term</em> ke <em>termID</em> bisa dibangun secara <em>on the fly</em> sementara dilakukan pemrosesan terhadap <em>document collection</em>, dalam sebuah pendekatan pemrosesan dengan 2 kali <em>pass</em>, dimana pada <em>pass</em> pertama dikompilasi <em>vocabulary</em>-nya dan kemudian pada <em>pass</em> kedua dibangun <em>inverted index</em>. Algoritma pembangunan index yang akan dibahas pada tugas ini semua melakukan <em>single pass</em> pada data.</p>
<p><span id="more-86"></span></p>
<table style="border:#CCCCCC thin solid" border="0">
<tbody>
<tr>
<td style="border:#CCCCCC thin solid">Simbol</td>
<td style="border:#CCCCCC thin solid">Statistik</td>
<td style="border:#CCCCCC thin solid">Value</td>
</tr>
<tr>
<td style="border:#CCCCCC thin solid"><strong><em>N</em></strong></td>
<td style="border:#CCCCCC thin solid">jumlah <em>document</em></td>
<td style="border:#CCCCCC thin solid">800.000</td>
</tr>
<tr>
<td style="border:#CCCCCC thin solid"><strong><em>L<sub>ave</sub></em></strong></td>
<td style="border:#CCCCCC thin solid">rata-rata <em>token</em> per <em>document</em></td>
<td style="border:#CCCCCC thin solid">200</td>
</tr>
<tr>
<td style="border:#CCCCCC thin solid"><strong><em>M</em></strong></td>
<td style="border:#CCCCCC thin solid">jumlah <em>term</em></td>
<td style="border:#CCCCCC thin solid">400.000</td>
</tr>
<tr>
<td style="border:#CCCCCC thin solid"></td>
<td style="border:#CCCCCC thin solid">rata-rata <em>bytes</em> per <em>token</em> (termasuk spasi/titik)</td>
<td style="border:#CCCCCC thin solid">6</td>
</tr>
<tr>
<td style="border:#CCCCCC thin solid"></td>
<td style="border:#CCCCCC thin solid">rata-rata <em>bytes</em> per <em>token</em> (tanpa spasi/titik)</td>
<td style="border:#CCCCCC thin solid">4,5</td>
</tr>
<tr>
<td style="border:#CCCCCC thin solid"></td>
<td style="border:#CCCCCC thin solid">rata-rata <em>bytes</em> per <em>term</em></td>
<td style="border:#CCCCCC thin solid">7,5</td>
</tr>
<tr>
<td style="border:#CCCCCC thin solid"><strong><em>T</em></strong></td>
<td style="border:#CCCCCC thin solid">jumlah <em>token</em></td>
<td style="border:#CCCCCC thin solid">100.000.000</td>
</tr>
</tbody>
</table>
<p>Kita akan menggunakan dokumen Reuters-RCV1 yang data-datanya ada pada table di atas sebagai <em>model collection</em>, dokumen ini merupakan dokumen teks yang ukuran kasarnya 1 GB. Dokumen Reuters-RCV1 mempunyai 100 juta <em>token</em>. Proses pengumpulan pasangan <em>termID-docID</em> menggunakan masing-masing 4 <em>byte</em> untuk <em>termID</em> dan <em>docID</em> akan membutuhkan <em>storage</em> sebesar 0.8 GB. Bisa dilihat bahwa bagaimana <em>document collection</em> tersebut akan memepengaruhi memori, bahkan untuk komputer dalam skala besar, jika kita mencoba untuk mengurutkan pasangan <em>termID-docID</em> di memori.</p>
<p>Dengan adanya keterbatasan memori, perlu digunakan suatu algoritma pengurutan secara eksternal (di luar memori utama), contohnya menggunakan disk. Untuk kecepatan yang dapat diterima, pusat kebutuhan untuk algoritma tersebut adalah meminimalkan jumlah <em>random disk seek</em> selama proses pengurutan. Salah satu solusinya adalah <em><strong>blocked sort-based indexing algorithm (BSBI)</strong></em>. Langkah-langkah BSBI :</p>
<ol type="i">
<li>segmentasi koleksi menjadi bagian-bagian dengan ukuran yang sama</li>
<li>urutkan pasangan <em>termID-docID</em> dari tiap-tiap bagian di memori</li>
<li>simpan hasil pengurutan <em>intermediate</em> pada disk</li>
<li>gabung semua hasil pengurutan <em>intermediate</em> ke <em>final index</em></li>
</ol>
<p>Algoritma ini menguraikan dokumen-dokumen menjadi pasangan <em>termID-docID</em> dan mengakumulasikan pasangan-pasangan tersebut di memori hingga sebuah blok berukuran tetap penuh. Ukuran blok dipilih untuk menyesuaikan ke memori untuk mengizinkan pengurutan cepat di dalam memori. Blok kemudian di-<em>invert</em> dan ditulis ke disk. Proses pembalikan (<em>inversion</em>) terdiri atas dua langkah. Pertama, mengurutkan pasangan <em>termID-docID</em>. Kemudian mengumpulkan semua pasangan <em>termID-docID</em> dengan <em>termID</em> yang sama ke dalam sebuah daftar <em>postings</em>, dimana sebuah <em>posting</em> adalah sebuah <em>docID</em>. Hasilnya, sebuah <em>inverted index</em> untuk blok yang baru saja dibaca, kemudian ditulis ke disk. Jika diaplikasikan pada contoh dokumen Reuters-RCV1 dan diasumsikan kita bisa mencocokkan 10 juta pasangan <em>termID-docID</em> ke memori, hasilnya digunakan 10 blok, masing-masing sebuah <em>inverted index</em> dari satu bagian dari koleksi.</p>
<p>Pada langkah terakhir, algoritma ini secara bersamaan menggabungkan kesepuluh blok menjadi sebuah index gabungan yang besar. Untuk melakukan penggabungan, semua <em>file</em> blok dibuka secara bersamaan dan mempertahankan <em>read buffers</em> berukuran kecil untuk 10 blok yang dibaca dan sebuah <em>write buffer</em> untuk <em>final index</em> gabungan yang ditulis. Pada setiap iterasi, dipilih <em>termID</em> terendah yang belum diproses menggunakan antrian prioritas atau struktur data yang serupa. Seluruh daftar <em>postings</em> untuk <em>termID</em> ini dibaca, digabung dan daftar gabungan ditulis kembali ke disk. Setiap <em>read buffer</em> diisi ulang dari <em>file</em>-nya jika diperlukan.</p>
<p>Kompleksitas waktu BSBI adalah <strong><em>?(T log T)</em></strong> karena langkah dengan kompleksitas waktu tertinggi adalah pengurutan dan <strong><em>T</em></strong> adalah batas atas jumlah <em>item</em> yang harus diurutkan (jumlah pasangan <em>termID-docID</em>). Namun, waktu peng-index-an aktual biasanya didominasi oleh waktu yang diperlukan untuk mengurai dokumen dan untuk melakukan penggabungan akhir <em>final index</em>.</p>
<p>Referensi :<br />
<a href="http://nlp.stanford.edu/IR-book/html/htmledition/blocked-sort-based-indexing-1.html" target="_blank"> http://nlp.stanford.edu/IR-book/html/htmledition/blocked-sort-based-indexing-1.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://madejunes.net/2008/10/blocked-sort-based-indexing-algorithm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
