Re: [linux-programming] Script bisa dijalankan sekali.

2012-08-28 Terurut Topik Eko Prasetya
Untuk case ini, kenapa tidak di-diff saja, antara resolv.aha dan resolv.conf ?
Jika sama, keluar, jika tidak, continue.


Eko.

2012/8/28 Donny Kurnia donnykur...@gmail.com

 On 28 Agt 2012, at 20:35, MYA Putra yaspu...@gmail.com wrote:

  On Tue, Aug 28, 2012 at 07:46:16PM +0700, Itoshiki Rin wrote:
  Date: Tue, 28 Aug 2012 19:46:16 +0700
  From: Itoshiki Rin zetsuri...@gmail.com
  User-Agent: Mutt/1.5.21 (2010-09-15)
 
  On Tue, Aug 28, 2012 at 07:16:06PM +0800, MYA Putra yaspu...@gmail.com 
  wrote:
  Rekan Programmer,
 
  Bagaimana caranya membuat script yang hanya bisa dijalankan
  sekali saja? Misal script *aha yang isinya:
 
  cp resolv.aha resolv.conf
  cp wvdial.aha wvdial.conf
  usb_modeswitch -vpVP -c usb_modeswitch.conf
 
  Demikian TIA.
 
  Salam,
 
  Putra Oesman
 
  Di skrip-nya sendiri dikasih perintah buat chmod -x
 
  Mungkin pertanyaannya salah. Maksudnya Isi scriptnya yang tidak bisa
  dieksekusi, scriptnya tetap bisa dieksekusi. Jadi kalau diulang script
  tersebut tidak mengeksekusi apa-apa.
 
  Salam,
 
  Putra Oesman
  --
  Linux Registered User #146631
  -


 Bisa pakai teknik lock sederhana menggunakan file.

 Script pertama2 cek keberadaan sebuah file, jika file lock tersebut
 tidak ada, lanjutkan eksekusi. Di akhir eksekusi buat file lock yang
 akan dicek script ini. Saat script dijalankan ulang, karena file lock
 sekarang ini telah ada, maka script tidak akan lanjut.

 Lokasi file lock bisa dimana aja, tapi kalau dibuat di folder /tmp,
 akan otomatis di cleanup saat system restart.

 --
 Donny Kurnia
 Apple ID: donnykur...@gmail.com
 Twitter: @donnykurnia
 Skype: donnykurnia
 My online profile:
 http://www.linkedin.com/in/donnykurnia
 http://careers.stackoverflow.com/donnykurnia
 http://re.vu/donnykurnia
 http://hantulab.blogspot.com
 ---
 At times the world can seem an unfriendly and sinister place. But
 believe us when we say there is much more good in it than bad. And
 what might seem to be a series of unfortunate events, may in fact, be
 the first steps of a journey.
 -- A Series of Unfortunate Events

 --
 Berhenti langganan: linux-programming-unsubscr...@linux.or.id
 Arsip dan info: http://linux.or.id/milis


-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Script bisa dijalankan sekali.

2012-08-28 Terurut Topik Eko Prasetya
Gunakan diff, dan check return error-nya:

#!/bin/bash

diff a.txt b.txt  /dev/null
if [ $? != 0 ]; then
echo not the same;
else
echo the same;
fi


Eko.

2012/8/28 MYA Putra yaspu...@gmail.com:
 Terima kasih rekan semua atas responsnya. Ini saya baru buat dengan
 membandingkan dua file, namun apakah statmennya ini benar?:

 foreach file(resolv.*)
   if ($file(resolv.aha) == ($file(resolv.conf) then
   exit(1)
   else if ($file(resolv.aha) != ($file(resolv.conf)
 cp resolv.aha resolv.conf
   endif
 end

 Tapi tidak jalan. Mungkin sintax atau strukturnya salah. CMIIW

 Salam,

 Putra Oesman
 --
 Linux Registered User #146631

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: Bls: [linux-programming] Linux untuk keperluan khusus

2010-01-26 Terurut Topik Eko Prasetya
Saya menggunakan MotoDroid. Sejauh ini, sangat memuaskan.
Apalagi saya bisa buat aplikasinya dengan Python/Ruby/Lua.

Jalannya di Linux + JVM.


KOkon.

2010/1/26 Dichi Al Faridi di...@alfaridi.info:

 Kalo ga salah Android mahal ya.. :D oiya, selain HTC, vendor seperti Sony
 Ericsson juga ada yang pake Android (Xperia berapa gitu).. Btw, dah ada yang
 pake android?

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: Bls: [linux-programming] Linux untuk keperluan khusus

2010-01-26 Terurut Topik Eko Prasetya
Sudah jarang saya melihat embedded platform yang berjalan menggunakan
proprietary O/S (eg. vxWorks/pSOS). Perkecualian mungkin untuk phone.

Tetangga-tetangga saya menggunakan Linux semua, mulai dari access
(DSLAM/PON), transport (optics/packets), router, etc.

Mengenai masalah performance, saya tidak melihat begitu banyak keterbatasan,
mungkin karena embedded processor yang digunakan sekarang sudah powerful,
dan kebanyakan timing-sensitive process sudah di-off-load ke hardware semua.

Ada beberapa kasus dimana kita harus memenuhi kriteria tentang latency,
(eg. BLSR/UPSR 50ms switch, PBB-TE 9.9ms), tapi untuk masalah ini,
kita bisa membypass Linux interrupt handler.


KOkon.

2010/1/26 dian sastro maeje...@gmail.com:
 Kebetulan perusahaan saya juga mengembangkan peralatan navigasi
 pesawat terbang dan satellite communication untuk kapal memakai
 embedded linux.
 Sejauh ini lumayan, hanya sedikit lambat dalam hal performance gitu aja.

 -sas-

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: Bls: [linux-programming] Linux untuk keperluan khusus

2010-01-26 Terurut Topik Eko Prasetya
Tergantung dari embedded processor yang digunakan, biasanya di arch/XXX/kernel
ada sekelompok file yang digunakan untuk meng-initialize interrupt handler,
sebelum diberikan ke kernel/irq/handle.c.

Misalnya, untuk book-E processor, adanya di
arch/powerpc/kernel/head_fsl_booke.S.

Code ini yang menjadi interface ke processor yang Anda gunakan
(interrupt vector).
Yang perlu Anda lakukan hanya menambahkan beberapa if statement untuk IRQ
tertentu yang Anda ingin bypass. Jadi seandainya ada interrupt yang masuk ke IRQ
tersebut, Anda tidak perlu lapor ke kernel.

IRQ di sini berlaku baik untuk internal maupun external interrupt.
Yang harus diperhatikan, interrupt di kernel menggunakan konsep
virtual IRQ, supaya
beberapa device bisa menggunakan interrupt-line yang sama. Di processor sendiri,
ini tidak berlaku.

Tapi kembali ke dasar dari software engineering, make it work first,
optimize later.


KOkon.

2010/1/26 Iwan Budi Kusnanto iwa...@gmail.com:

 Mas Eko, bisa cerita lebih banyak ttg bypass linux interrupt handler ini ?

 Thanks


-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] nice in database bash script

2010-01-21 Terurut Topik Eko Prasetya
nice hanya mempengaruhi client priority. Seandainya client tidak
melakukan banyak
aktifitas, nice tidak akan berpengaruh banyak di sini.
Sebagian besar pekerjaan dilakukan di server yang tidak terpengaruh
oleh kondisi client.


KOkon.

2010/1/21 net netzerosp...@gmail.com:
 misal saya punya query yg berat pada server oracle based linux / unix
 (taruh lah saya melakukan query yang mempunyai cost besar)

 query ini saya jalankan pada script bash jalan.sh

 kondisi nya adalah server db ini cukup aktif
 jadi apabila ada query yg berjalan cukup besar dan lama waktu eksekusi
 nya akan berpengaruh pada performance db


 apabila kemudian saya menjalankan jalan.sh ini pada backgroud process
 dengan tapi dengan menambahkan perintah nice

 kira2 akan berpengaruh atau ngak yah atau 100% berpengaruh pada tuning query


 thanks

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] nice in database bash script

2010-01-21 Terurut Topik Eko Prasetya
Contoh, client mengirim SQL query ke server, dan blocking menunggu response
dari server. Server akan memproses query, prepare, parse, dan mulai
scan database,
open index, etc. Setelah memperoleh jawabannya, hasilnya akan dikirimkan ke
client. Client akan keluar dari blocking, dan melanjutkan proses
pengiriman query
berikutnya.

nice akan mengganti prioritas dari proses yang berjalan, di sini si client.
Bila si client melakukan blocking, maka nice tidak akan membantu banyak,
toh si client-proses tidak melakukan apa-apa.

Ini berbeda kasusnya seandainya client mengirimkan query-nya kecil,
dan proses-nya
dikerjakan di client-side. Tapi biasanya kasusnya tidak seperti ini.
Lagipula posisi client
bisa dipindah ke komputer lain yang less-heavy.



KOkon.

2010/1/21 net netzerosp...@gmail.com:
 maksud nya client user bukan ?

 jadi maksudnya
 nice hanya berpengaruh pada prioritas process2 yg berjalan pada user
 tertentu saja

 On 1/22/10, Eko Prasetya eprase...@gmail.com wrote:
 nice hanya mempengaruhi client priority. Seandainya client tidak
 melakukan banyak
 aktifitas, nice tidak akan berpengaruh banyak di sini.
 Sebagian besar pekerjaan dilakukan di server yang tidak terpengaruh
 oleh kondisi client.


 KOkon.

 2010/1/21 net netzerosp...@gmail.com:
 misal saya punya query yg berat pada server oracle based linux / unix
 (taruh lah saya melakukan query yang mempunyai cost besar)

 query ini saya jalankan pada script bash jalan.sh

 kondisi nya adalah server db ini cukup aktif
 jadi apabila ada query yg berjalan cukup besar dan lama waktu eksekusi
 nya akan berpengaruh pada performance db


 apabila kemudian saya menjalankan jalan.sh ini pada backgroud process
 dengan tapi dengan menambahkan perintah nice

 kira2 akan berpengaruh atau ngak yah atau 100% berpengaruh pada tuning
 query


 thanks

 --
 Berhenti langganan: linux-programming-unsubscr...@linux.or.id
 Arsip dan info: http://linux.or.id/milis




 --
 --from the net with zero space--

 --
 Berhenti langganan: linux-programming-unsubscr...@linux.or.id
 Arsip dan info: http://linux.or.id/milis



-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] nice in database bash script

2010-01-21 Terurut Topik Eko Prasetya
Ya kurang lebih begitu.

Sebetulnya tergantung juga dari kondisi O/S-nya saat itu. Jika tidak terlalu
banyak context-switch, dan CPU/IO utilization-nya masih di bawah 100%,
mustinya impact-nya tidak terlalu besar.


KOkon.

2010/1/21 Iwan Budi Kusnanto iwa...@gmail.com:

 CMIIW,
 ketika query ke DB, proses yg terlibat ada 2 : db client  db server.
 Query dimasukkan dari DB client , nice juga dijalankan di DB client, dan
 hanya mempengaruhi DB client.
 Sedangkan query diproses oleh DB server, padahal pemrosesan inilah yg berat.

 Kesimpulan : nice hanya mempengaruhi DB client. Sedangkan kerja beratnya
 dilakukan oleh DB server.

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] help bash script 2

2010-01-10 Terurut Topik Eko Prasetya
Budy,

Mungkin opini ini benar untuk 5 atau 10 tahun yang lalu, tapi jika
kita melihat embedded systems sekarang, sudah makin jarang kita
temukan system yang tidak mampu menjalankan high-level language.



KOkon.

2010/1/8 Budy Wuysang nguik.gn...@gmail.com:
 2010/1/9 Eko Prasetya eprase...@gmail.com:
 Di real world, kita menggunakan python atau high-level language lainnya :D

 Tentu saja dengan syarat system yg digunakan sanggup
 dan punya resource untuk python  language lainnya.

 Kalau sudah masuk ke system embedded atau small
 memory system maka sangat kecil kemungkinan anda
 punya akses ke higher level language,
 contoh: busybox routers, nokia n810, dll

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] OOT Lowongan Kerja Java Programmer GWT

2010-01-10 Terurut Topik Eko Prasetya
Hi Martinus,

Kalau saya boleh bertanya sedikit tentang proyek-nya:

1. Untuk komunikasi antara GWT dan server, kenapa tidak menggunakan Google RPC?
2. Kenapa menggunakan servlet? Kenapa tidak menggunakan Rails atau
Django misalnya?
3. Bagaimana implementasi local database di browser-nya? Menggunakan Gears atau
HTML5 web-storage? Library apa yang digunakan?
4. Mengapa koneksi ke Oracle menggunakan stored procedure/web-service?
Bagaimana masalah performance-nya?

Terima kasih banyak kalau bersedia jawab pertanyaannya.


Regards, KOkon.

2010/1/10 Martinus Ady H mrt.itnewb...@gmail.com:
 Moderator numpang posting lowongan kerja ya,

 Kami, PT ArtiVisi Intermedia, sedang mencari karyawan untuk
 ditempatkan onsite di client dengan spesifikasi sebagai berikut.

  Posisi 
 Senior/Junior GWT Programmer

  Job Description 
 Membuat dan me-maintain aplikasi web. Aplikasi web ini dibuat
 menggunakan GWT untuk front end dan terhubung ke service layer yang
 dibuat dengan Spring MVC. Pertukaran data antara Spring MVC dan GWT
 dilakukan dengan format data JSON
 Data Access layer ada 2 jenis: koneksi ke Oracle menggunakan Stored
 Procedure atau Web Service.

  Kualifikasi 
 Menguasai teknologi sesuai deskripsi di atas
 Memiliki kemampuan komunikasi yang baik (kalau ada masalah, ngomong ke
 atasan, gak diam aja)
 Memiliki kemampuan problem solving yang baik (bisa google sendiri kalo
 bingung)

  Ketersediaan Posisi 
 1 orang senior programmer
 2 orang junior programmer

  Lokasi Kerja 
 Base location di Jl. Gatot Subroto, Jakarta.
 Ada kemungkinan keliling Indonesia untuk implementasi.

  Kompensasi 
 Senior Programmer :
 - Take Home Pay : 4.5 - 6 juta/bulan
 - Bonus tahunan up to 1 bulan gaji

 Junior Programmer :
 - Take Home Pay : 3.5 - 4.5 juta/bulan
 - Bonus tahunan up to 1 bulan gaji

  Status Pekerjaan 
 - 3 bulan probation, masing-masing pihak bisa mengakhiri kontrak
 dengan pemberitahuan 2 minggu sebelumnya.
 - Setelah probation, kontrak 1 tahun

  Proses Rekrutmen 
 1. Pelajari dulu teknologi yang dibutuhkan

 2. Buat aplikasi kecil menggunakan teknologi tersebut
   Kalau bingung mau buat aplikasi apa,
   silahkan implement tutorial ini dengan teknologi di atas :
   - http://endy.artivisi.com/blog/java/aplikasi-web-spring25-1/
   - http://endy.artivisi.com/blog/java/aplikasi-web-spring25-2/
   - http://endy.artivisi.com/blog/java/aplikasi-web-spring25-3/
   - http://endy.artivisi.com/blog/java/aplikasi-web-spring25-4/
   - http://endy.artivisi.com/blog/java/aplikasi-web-spring25-5/
   - http://endy.artivisi.com/blog/java/aplikasi-web-spring25-6/

 3. Setelah merasa yakin dengan kemampuan Anda,
   kirim CV ke i...@artivisi.com
   beserta URL yang menunjuk ke screenshot aplikasi yang dibuat di langkah #2
   Please jangan kirim screenshotnya ke email kami karena akan bikin
 penuh mailbox.
   Silahkan upload di blog Anda sendiri, hitung-hitung self-marketing

 4. Kandidat yang kami rasa memenuhi syarat akan dipanggil untuk interview

 5. Pada saat interview, berikut adalah susunan acaranya :
   - diskusi mengenai pekerjaan yang akan dilakukan
   - presentasi contoh aplikasi yang sudah dibuat di langkah #2
   - tanya jawab mengenai contoh aplikasi
   - negosiasi kompensasi

 6. Tanda tangan kontrak
 7. Mulai bekerja

  Informasi Lebih Lanjut 
 Kalau ada yang mau ditanyakan mengenai posisi ini,
 silahkan reply email ini atau kirim ke i...@artivisi.com

 --
 Regards,

 Martinus Ady H.
 Registered Linux User #410906
 Personal Blog       : http://martinusadyh.web.id/
 Planet NetBeans ID  : http://planetnetbeans.org/id/index.html
 Planet Slackware ID : http://planet.slackware-id.org/

 --
 Berhenti langganan: linux-programming-unsubscr...@linux.or.id
 Arsip dan info: http://linux.or.id/milis



--
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] OOT Lowongan Kerja Java Programmer GWT

2010-01-10 Terurut Topik Eko Prasetya
Terima kasih untuk jawabannya.

Kebetulan lagi develop web application menggunakan GWT juga,
jadi ingin tahu bagaimana pendekatan dari perusahaan lain.

Biasanya untuk light web-app, mungkin tidak perlu local database.
Tapi untuk kebutuhan saya, local database merupakan keharusan.


Regards, KOkon.

2010/1/10 Martinus Ady H mrt.itnewb...@gmail.com:
 Eko Prasetya wrote:

 Hi Martinus,

 Kalau saya boleh bertanya sedikit tentang proyek-nya:

 1. Untuk komunikasi antara GWT dan server, kenapa tidak menggunakan Google
 RPC?

 Client mintanya seperti ini pak, karena ini meneruskan aplikasi yg udah
 *existing* jd bukan bikin dari awal.

 2. Kenapa menggunakan servlet? Kenapa tidak menggunakan Rails atau
 Django misalnya?

 #1

 3. Bagaimana implementasi local database di browser-nya? Menggunakan Gears
 atau
 HTML5 web-storage? Library apa yang digunakan?

 Sementara ini tidak pakai local database pak.

 4. Mengapa koneksi ke Oracle menggunakan stored procedure/web-service?

 Krn ingin re-use existing code pak, jadinya pilihan ini yg dipakai.

 Bagaimana masalah performance-nya?

 Sementara ini masih belum ada masalah.

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] help bash script 2

2010-01-08 Terurut Topik Eko Prasetya
Di real world, kita menggunakan python atau high-level language lainnya :D


Eko.

2010/1/8 Budy Wuysang nguik.gn...@gmail.com:

 Dalam real world scripting kadang perlu dioptimalkan juga,
 dalam hal ini bash punya builtin parameter expansion 
 kalau untuk bashv2 (or later) ada $( file) pengganti $(cat file)


-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] buku bagus di bidang computational theory

2009-12-27 Terurut Topik Eko Prasetya
Eko, thanks buat sharingnya.

SICP merupakan buku yang bagus untuk memahami functional programming.
One of the best.

Art of Computer Programming (Knuth), menurut saya terlalu mathematics.
Untuk belajar algorithm, lebih baik menggunakan Introduction to
Algorithms (Cormen/MIT).

Untuk yang A Little Java A Few Patterns, ada bagusnya membaca
Design Patterns (GoF) juga.

Buku yang saya sedang baca Coders At Work itu juga bagus. Buku ini berisi
interviews dengan top programmer, dan menarik sekali mengikuti cara berpikir
mereka dalam menghadapi masalah.



KOkon.

2009/12/27 eko hermiyanto eko.hermiya...@gmail.com:
 Teman-teman,

 Saya ada beberapa buku yang bagus banget tentang programming,
 computational theory, symbolic expression dan symbolic computation,
 dan juga artificial intelligence:
 1. How to Design Program
 Buku ini adalah buku tentang computational theory yang paling elegant
 yang pernah saya baca. Saya begitu mencintai buku ini. Dengan buku
 ini, kita akan belajar me-design program. Buku ini juga tersedia
 online, silakan googling sendiri.
 2. Computer Science Logo Style
 Setelah mempelajari How to Design Program, maka buku ini akan jadi
 buku kedua yang pas. Buku ini sebenarnya ada 3 volume. Buku ini juga
 tersedia online, tetapi alamatnya mohon googling sendiri yah.
 3. Schemers Series
 Seri ini ada tiga buku, yaitu A Little Schemer, A Seasoned Schemer,
 dan A Reasoned Schemer. Seri ini akan menjadi makanan ketiga yang
 sangat lezat.
 4. The Little MLer
 Seri ini akan menjadi makanan keempat yang menyehatkan, percayalah.
 5. A Little Java A Few Patterns
 Banyak orang membenci Java(walaupun juga banyak yang mencintai bahasa
 tersebut). Tetapi percayalah, dengan buku ini kita akan mengetahui
 keindahan Java. Tetapi harap mohon dimengerti bahwa buku ini bukanlah
 tentang Java, tetapi tentang konsep programming yang menggunakan Java
 sebagai tool.
 6. Squeak: Learn Programming with Robots
 Ingin bersenang-senang, bacalah buku ini. Selain itu, buku ini akan
 membuka sebuah dunia sebagai sesuatu hal yang baru bagi kita.

 Dan seri kedua adalah mengenai eksplorasi dunia ini dalam konteks
 computational theory:
 1. Turtle Geometry: The Computer as a Medium for Exploring Mathematics
 2. Investigations in Algebra: An Approach to Using Logo
 3. Learning Mathematics and Logo

 Buku-buku ini adalah buku dengan kesulitan tingkat medium:
 1. Scheme and the Art of Programming
 Scheme, dalam opini saya adalah salah satu bahasa yang paling elegan
 di dunia ini(tetapi harap diingat bahwa ini adalah opini saya pribadi
 dan oleh karena itu sangatlah subjektif). Dengan buku ini, kita akan
 bisa mempelajari Scheme sebagai sebuah bahasa dan bukan hanya sebagai
 tool untuk mempelajari konsep-konsep computational theory.
 2. C Programming Language
 Bahkan, pencipta OpenBSD sendiri berkata bahwa buku ini adalah
 satu-satunya yang perlu kita baca untuk mengetahui konsep-konsep yang
 ditawarkan oleh C(seperti pointer). Tetapi tentu saja, saya sendiri
 juga tidak begitu setuju dengan beliau(tetapi saya yakin ini karena
 daya pikir saya yang terbatas dibandingkan dengan beliau).

 Buku-buku yang teramat sangat advance, dan mohon dimengerti bahwa saya
 sendiri juga belum selesai membaca buku-buku berikut ini:
 1. Structure and Interpretation of Computer Programs
 Buku ini adalah buku yang paling legendaris dalam dunia computational
 theory(sejauh yang saya tahu). Tetapi alamak susahnya minta ampun.
 2. Essentials of Programming Languages
 Hmmm.. terus terang saya baru sampai bab pertama.. Untuk saat ini saya
 nyerah dulu deh.
 3. The Art of Computer Programming
 Diskusi mengenai algorithm, try it, karena buku ini juga legendaris.

 Well, buku-buku tersebut bisa dibaca sambil dipraktekan di komputer.
 Tetapi saya menganggap computational theory adalah applied
 mathematics, jadi saya menggunakan kertas dan bolpoin untuk melakukan
 kegiatan programming day to day(walaupun banyak juga yang saya
 kerjakan dengan komputer), dengan pengecualian untuk kasus yang
 berhubungan dengan Geometry, saya lebih suka memakai komputer.

 Bagaimana dengan komputer yang diperlukan? Sebuah mesin X86 dengan
 Linux sudah lebih dari mencukupi karena kompiler dan interpreter untuk
 tool-tool diatas tersedia di Linux. Tetapi tentu saja teman-teman bisa
 memakai mesin dan OS yang lain(Plan9 misalnya, tetapi saya tidak tahu
 apakah semua implementasinya tersedia di Plan9 atau tidak)

 Bagi yang di Jakarta bisa datang ke rumah saya kalau mau iseng-iseng
 membaca buku-buku itu. Bisa juga meminjam buku itu, tetapi tinggalkan
 saya buku juga yah, tapi diharapkan jangan buku yang berhubungan
 dengan komputer kalau bisa(saya lebih suka baca Novel.. hehehehehe).

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] buku bagus di bidang computational theory

2009-12-27 Terurut Topik Eko Prasetya
Saya beli langsung di amazon.com. Untuk buku-buku computer yang baru
terbit biasanya pilihannya tidak terlalu banyak. Dan kalau menggunakan Amazon
Prime, free 2nd-day shipping di US, dan tax-free untuk California resident.

Maaf, saya tidak tahu/familiar dengan kinokuniya.


KOkon.

2009/12/27 eko hermiyanto eko.hermiya...@gmail.com:

 Belinya dimana ya pak? Kinokuniya adakah? Atau perlu memesan bukunya
 langsung? Dan juga harganya berapa ya pak?

 Buku yang saya sedang baca Coders At Work itu juga bagus. Buku ini berisi
 interviews dengan top programmer, dan menarik sekali mengikuti cara berpikir
 mereka dalam menghadapi masalah.

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] modifikasi listing program DOS ke Linux

2009-11-29 Terurut Topik Eko Prasetya
Putra,

Kamu tidak bisa pass kata pointer di main. Pointer itu harus
diinitialize dulu.

Ganti code-nya dengan char kata[256], then you should be OK.


KOkon.

2009/11/28  yaspu...@yahoo.co.id:
 On Sun, Nov 29, 2009 at 08:48:49AM +0700, Ariya Hidayat wrote:
  Saya memodifikasi program C yang jalan di DOS untuk bisa jalan di Linux.
  Listing program hasil modifikasi bisa di compile dan file executable 
  terbentuk
  namun ketika dijalankan terjadi: Segmentation fault.

 Coba jalankan di debugger (gdb), nanti kan ketahuan baris yang mana
 yang menyebabkan crash tersebut.

 Itulah masalah saya. Tidak biasa dengan gcc yang cli. Dulu pakai DOS dari,
 dengan IDEnya Turbo C bisa cepat cari bug.

 Thanks anyway! Rupanya mesti baca manual gcc dulu...:-)

 Salam,

 Putra

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



[linux-programming] Hello

2009-11-14 Terurut Topik Eko Prasetya
http://gb2383.web02.talkactive.net/Z6yhEPqol5.html

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



[linux-programming] Re: Hello

2009-11-14 Terurut Topik Eko Prasetya
Hi all,

Please ignore this e-mail. It's apparently sent by some kind of a worm.
I'm still investigating the issue of how the worm could get my contact list.

I apologize for any inconvenience it may cause.


Regards, Eko.

On Sat, Nov 14, 2009 at 12:16 PM, Eko Prasetya eprase...@gmail.com wrote:
 http://gb2383.web02.talkactive.net/Z6yhEPqol5.html


-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Tentang iostream.h/iostream

2009-11-13 Terurut Topik Eko Prasetya
Sejak gcc 4.0.x, iostream.h diberikan warnings.
Sejak gcc 4.1.x kalau ngga salah, iostream.h di drop dari standard header.


Eko.

2009/11/13 Dichi Al Faridi di...@alfaridi.info:
 On 11/13/2009 04:39 PM, yaspu...@yahoo.co.id wrote:

 On Fri, Nov 13, 2009 at 08:30:54AM +0100, Fajran Iman Rusadi wrote:

 2009/11/13yaspu...@yahoo.co.id:

 error: in function 'int main()':
 error: cout was not declared in this scope
 error: endl    -,,-

 Saya akan coba seperti yang Anda tunjukkan.

 cin, cout, endl itu ada di dalam namespace std. jadi antara anda harus
 menuliskan namespacenya setiap menggunakan cin, cout, endl, atau anda
 nyatakan bahwa std itu namespce yg dipake andai namespace gak disebut.

 antara memakai std::cin, std::cout, std::endl atau tulis using
 namespace std; di atas

 Okey kalau demikian pemasalahannya. Hanya selama ini saya kompile
 program-program .cpp cukup #includeiostream.h    cout,  cin, endl;
 kompail berhasil. Thx anyway.

 Salam,

 Putra

 Klo boleh tau, sebelumnya kau compile di compiler apa? jujur ane ga yakin
 kalo pake gnu, soalnya AFAIK, setelah tahun 1998, C++ distandarisasi (ANSI).
 Salah satu standar yang digunakan adalah saat pemanggilan standar library
 seperti iostream yang asalnya :

 # include iostream.h

 menjadi

 # include iostream



 CMIIW

 --
 Salam hangat,

 Dichi Al Faridi
 ---
 Linux Registered User #484936
 Blog: http://www.alfaridi.info/
 Facebook: http://www.facebook.com/alfaridi
 Follow Me: http://www.twitter.com/alfaridi

 --
 Berhenti langganan: linux-programming-unsubscr...@linux.or.id
 Arsip dan info: http://linux.or.id/milis



--
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] ext2 filesystem pada disk-on-chip

2009-07-23 Terurut Topik Eko Prasetya
ext2 tidak support journaling. Yang jadi masalah bukan karena file-nya
hilang, tapi file-system node-nya yang corrupted.

Pada waktu Anda menyimpan file, atau menulis ke file-system, Linux
akan menyimpan data-nya ke cache. Periodically, ada kernel thread
pgflush yang akan mem-flush cache dan menulis ke disk. Selama
pgflush belum menulis ke disk, maka data yang Anda tulis akan hilang
seandainya terjadi power-failure.

Biasanya Anda menggunakan sync command untuk memaksa pgflush
membuang (flush) cache ke disk. Tapi dalam proses flushing ini, ext2
ada kemungkinan bisa terjadi corruption.

Hope that helps.


KOkon.

2009/7/23 m.fahm...@gmail.com m.fahm...@gmail.com

 Dear linux gurus,

 Saya menggunakan ext2 untuk DoC.
 Saya ingin tahu apa rekan2 linux guru pernah mengalami masalah
 reliability untuk kasus seperti saya.
 Saya mengalami bahwa setiap kali saya selesai mengedit text file dengan
 vi, kemudian terjadi power failure atau hard reset, maka perubahan pada
 text file yg saya edit tadi tidak tersimpan. Padahal saya yakin telah
 menyimpan perubahan pada file tersebut.

 Apakah rekan2 linux guru punya solusi?
 Mohon pencerahannya.

 Thanks,
 Fahmy

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] ext2 filesystem pada disk-on-chip

2009-07-23 Terurut Topik Eko Prasetya
Untuk MTD devices, bisa menggunakan JFFS2 seperti yang disarankan
Iwan. JFFS2 supports wear-leveling algorithm, jadi penggunaan sector di
flash jadi lebih rata.

Saya menggunakan ext3. Interface disk-nya IDE, menggunakan compact
flash. fsck tidak harus digunakan setiap kali booting. Yang saya gunakan
adalah mount-count, jadi setiap kali mount-count-nya mencapai titik tertentu,
baru di fsck.



KOkon.

2009/7/23 m.fahm...@gmail.com m.fahm...@gmail.com

 @Iwan Budi Kusnanto
 Thanks info nya Pak. This is getting better afterall.
 Ya, memang untuk embedded Pak.

 Tapi mungkin saya tidak akan segera pakai ext3 fs
 karena alasan yang ada di site ini
 http://linuxgazette.net/102/piszcz.html
 Ternyata journaling fs lain ada yang performance-nya
 lebih baik dari ext3.

 Thanks all.
 Fahmy

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Offload DMA driver

2009-07-10 Terurut Topik Eko Prasetya
Dian,

Kamu menggunakan freescale kan? Freescale punya DMA master yang
seharusnya bisa authenticate dengan DMA slave di NIC.
DMA master dari freescale akan memberikan daftar physical memory
yang bisa diakses oleh DMA slave. Apabila NIC menerima data di ring
buffer-nya, dia akan mengirimnya langsung ke memory, dan men-generate
interrupt ke processor.


KOkon.

2009/7/10 dian sastro maeje...@gmail.com:
 Halo,

 Apakah diantara rekan2 ada yang mengetahui arsitektur/cara Network
 card offload DMA?
 Saya sudah berhasil membuat kernel driver untuk transfer dari main
 memory ke PCI memory memakai DMA main processor. Nah untuk network
 card, NIC ini mempunyai DMA controller sendiri. Berarti operasinya
 dilakukan oleh DMA controller NIC, bukan main processor. Yang saya
 belum paham, bagaimana cara kerja DMA di sisi NIC ini?

 Konfigurasi mesin: prosesor MPC8349ERM, board MPX8349GC, embedded
 linux (kernel 2.6.27), PCI bus 32-bit

 Thanks

 --
 Berhenti langganan: linux-programming-unsubscr...@linux.or.id
 Arsip dan info: http://linux.or.id/milis



-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Offload DMA driver

2009-07-10 Terurut Topik Eko Prasetya
Ring buffer / buffer descriptor, merupakan kumpulan descriptor yang menentukan
di mana NIC akan menulis ke memory apabila ada data yang diterima.

Yang perlu diingat, memory yang digunakan untuk DMA adalah physical memory,
bukan virtual/logical. Biasanya, karena saya sendiri yang kontrol
alokasi memory,
di boot-loader, kita bisa tentukan memory mana yang non-cache-able. Kalau Anda
tidak punya akses ke boot-loader, berarti alokasi memory harus
menggunakan kmalloc
dengan DMA flag. Masalahnya, dengan kmalloc, berarti Anda harus
menggunakan barrier
untuk read/write, dan barrier is expensive.


KOkon.

2009/7/10 dian sastro maeje...@gmail.com:
 Thanks pak Eko atas tanggapannya.

 Ring buffer nya itu ada dimana pak? Saya baca2 di google kok ring
 buffer itu adalah main memory . Juga saya baca di hardware manual
 MPC8349 juga tidak disebutkan adanya buffer di sisi NIC. Saya
 membandingkan dengan grafik card yang mempunyai memory sendiri, apa
 NIC juga punya memory tersendiri (yang disebut dengan ring buffer?)

 Kalau ring buffer = main memory, bagaimana kita menggunakan DMA nya
 pak pada mmap() ini? Saya membaca tentang struktur VMA, tetapi tidak
 yakin apakah ada hubungan antara handler mmap() dengan VMA ini...

 mohon petunjuknya pak

 thanks

 2009/7/11 Eko Prasetya eprase...@gmail.com:
 Dian,

 Kamu menggunakan freescale kan? Freescale punya DMA master yang
 seharusnya bisa authenticate dengan DMA slave di NIC.
 DMA master dari freescale akan memberikan daftar physical memory
 yang bisa diakses oleh DMA slave. Apabila NIC menerima data di ring
 buffer-nya, dia akan mengirimnya langsung ke memory, dan men-generate
 interrupt ke processor.


 KOkon.

 --
 Berhenti langganan: linux-programming-unsubscr...@linux.or.id
 Arsip dan info: http://linux.or.id/milis



-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Offload DMA driver

2009-07-10 Terurut Topik Eko Prasetya
Harus ada interrupt. Biasanya untuk ethernet, interrupt ini biasanya
diproses cepat,
kemudian invoke soft-interrupt/tasklet.

Di freescale, kalau tidak salah ada flag di BAR register untuk
enable/disable cache-nya.

Good luck.


KOkon.

2009/7/10 dian sastro maeje...@gmail.com:
 semakin jelas pak sekarang

 untuk mengawasi status buffer descriptor (BD) ini biasanya dilakukan
 software yang secara terus menerus mengecek status BD atau ada semacam
 hardware callback/interrupt pak?

 Untuk bootloader saya memakai uBoot, nanti bisa saya re-compile untuk
 mengakomodasi non cache able memory. Sekarang ini saya memakai fungsi
 virt_to_phys() di kernel driver untuk mengetahui alamat physical dari
 hasil kmalloc(). Memang saat ini masih ada perbedaan sebesar kira2 20
 MBps antara kmalloc() dan non cacheable pak, yaitu 70Mbps tanpa
 kmalloc() dengan 55.5 Mbps dengan kmalloc() pada 32-bit data bus.

 Thanks

-- 
Berhenti langganan: linux-programming-unsubscr...@linux.or.id
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] tanya bash

2008-11-09 Terurut Topik Eko Prasetya
Comments inline...

2008/11/9 Yohanes Nugroho [EMAIL PROTECTED]:

 Ya, sebenarnya sih kalo cuma sekedar a=0 itu bisa dideteksi dengan gcc -Wall

 Menggunakan lint itu hal yang baik.

...
 Ada banyak tools yang memang berguna dan membantu, tapi menurut saya
 tools tersebut seharusnya hanya dijadikan pengawas untuk membentuk
 kebiasaan baik. Salah satu favorit saya misalnya valgrind untuk
 pengecekan memory. Tadinya ketika membuat program kompleks dengan
 banyak alokasi memori, saya sering bergantung pada valgrind untuk
 memastikan program saya benar, tapi lama kelamaan tools ini menjadi
 tidak perlu (sekedar untuk testing di fase akhir). Di OS X tidak ada
 tools sebagus valgrind, tapi karena kebiasaan sudah terbentuk, saya
 tidak terlalu membutuhkannya lagi.

Tools tidak bisa menggantikan developer yang bagus, saya setuju.
Tapi saya sudah membiasakan diri untuk menggunakan lint, coverity dan valgrind
untuk semua code dan unit-test saya (kecuali third-party code).
Jadi saya memaksa developer lain untuk mengikuti standar yang disediakan oleh
tools tadi.

 Dan pernahkah Anda mencoba menjalankan lint di environment yang tidak
 standar? misalnya untuk mengembangkan aplikasi Symbian? (dulu ketika
 mulai memprogram symbian, belum ada lint khusus untuk Symbian,
 sekarang pun belum ada yang khusus untuk development symbian di
 Linux). Di lingkungan baru, kebiasaan yang baik akan lebih berguna.

Menjalankan lint (atau tools lainnya) tidak perlu harus di target,
kan? Apalagi untuk
embedded system, kita biasanya punya simulation environment. Sama seperti waktu
jaman batu, dimana ada pSOS, vxWorks, dll.

Mungkin argumentasi-nya bahwa kalau di simulation environment, tidak semua code
bisa di-simulate. Tapi dari pengalaman, 80-90% code bisa di-simulate
di higher layer.




KOkon.

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] tanya bash

2008-11-09 Terurut Topik Eko Prasetya
2008/11/9 Yohanes Nugroho [EMAIL PROTECTED]:

 Di Symbian (apalagi versi awal), memorinya sangat terbatas dan tidak
 ada paging. Jadi mereka mewajibkan program untuk menangani eksepsi
 dalam  alokasi memori (karena kemungkinan gagalnya sangat tinggi).
 Mereka punya idiom khusus (2 stage constructor) untuk menangani
 eksepsi pada saat penciptaan objek. API milik symbian juga sebagian
 besar melempar exception.

Exception memang diperlukan seandainya kita melakukan fungsi yang mungkin gagal
di constructor. Tapi kita bisa workaround, dengan melakukan operasi yang pasti
berhasil di constructor. Sedangkan yang tidak pasti, bisa dipindahkan
ke init function.

Google juga punya special restriction untuk penggunaan exception di
semua C++ code-nya.
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Doing_Work_in_Constructors

 Yah intinya sih: kalo tidak percaya, coba deh mengembangkan aplikasi
 Symbian s60 1st/2nd edition atau UIQ 2. Itu adalah lingkungan
 pengembangan yang paling saya benci. Walau demikian saya punya proyek
 open source pembaca Alkitab untuk Symbian sejak 2003 dan sudah saya
 porting ke hampir semua versi Symbian yang ada
 (http://compactbyte.com/symbianbible).


Percaya, saya percaya :)
Untungnya saya tidak bekerja di mobile device. Embedded yang saya
kerjakan biasanya
untuk transport atau access optical, jadi memory-nya tidak terlalu terbatas.

Kadang kalau dipikir, kontras sekali pembuatan program di embedded dan aplikasi.
Kebetulan saya bekerja di 2 startup, pagi di optical transport,
network processor, malam-nya
web, large-scale data warehouse.

Aplikasi web sama sekali tidak pusing dengan urusan memory. Yang
mereka pentingkan adalah
scale-out, pemisahan proses ke multi computer. Lebih murah buat kita
untuk menambah
jumlah PC daripada optimize byte-code atau memory. Jadi design-nya
harus memperhitungkan
bagaimana agar penambahan jumlah PC tidak memerlukan perubahan besar
di dalam software-nya.



KOkon.

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] tanya bash

2008-11-09 Terurut Topik Eko Prasetya
2008/11/9 Yohanes Nugroho [EMAIL PROTECTED]:

 Sekalian tanya deh kalau lint yang bagus untuk C++ yang free ada nggak
 ya? yang sudah saya coba biasanya lint-nya menjadi bingung jika
 kodenya terlalu banyak menggunakan feature C++ (terutama template).

Lint yang saya selalu pakai adalah PC-Lint, dari Gimpel. Yang free saya belum
belum pernah coba.
Yang lebih bagus sebetulnya Coverity. Coverity tidak invasive, jadi
kita tidak perlu
mengganti code supaya pass linting-nya. Cuma sayang harganya mahal, jadi
kita jalankan di build-server saja.

 Mengenai Symbian, ini bukan masalah menjalankan di target atau host.
 Masalahnya symbian ini dulu adalah turunan dari EPOC sejak jaman g++
 belum mendukung exception. Mereka akhirnya membuat exception handling
 system sendiri menggunakan aneka macro dan konvensi mereka. Selain itu
 juga mereka memiliki banyak sekali kelas string yang berbeda-beda
 sifatnya. Setiap kelas membedakan string yang panjangnya statik dan
 dinamik, const dan non cost, di heap dan stack, unicode dengan byte.
 misalnya HBufC16 adalah string di heap, panjangnya tetap, unicode.
 Dulu implementasi STL juga belum ada dan libc-nya sangat terbatas.

Tapi dengan simulasi, bukankah kita bisa membatasi program kita supaya tidak
menggunakan feature-feature yang tidak di-support oleh target? Dengan simulasi,
berarti kita mau agar code yang jalan di simulasi bisa jalan juga
di-target dengan
perubahan seminim mungkin.

Hati-hati juga dengan C++ exception. Saya biasanya tidak menggunakan exception
in general, karena handle memory leak pada waktu exception throw jauh
lebih sulit.

 Kalau sudah begini, biasanya saya bergantung pada unit test.

 Sekarang ini sih keadaan sudah lebih baik (sejak Symbian 9). Mereka
 akhirnya punya libc yang lengkap, dan sudah ada implementasi STL.
 Tools untuk pemeriksaan kesalahan khusus untuk Symbian juga sudah
 tersedia.

Sekarang dunia embedded sudah jauh lebih baik, terutama setelah ada Linux.
Moga-moga saja Android bisa lebih populer di dunia mobile.

Agak menyimpang, FYI, gcc 4.4 mendukung lambda dan auto. Combined with STL,
it's gonna be interesting.


KOkon.

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Linux embeded

2008-06-19 Terurut Topik Eko Prasetya
Yang paling kecil pernah saya pakai:
PXA, ARM processor, RAM 128MB, NAND-Flash 64MB.
Menggunakan busy-box, direct frame-buffer dan OWB browser.


KOkon.

2008/6/18 uwo [EMAIL PROTECTED]:
 Dear All,

 Barangkali ada yg tahu H/W system minimum board linux embedded yang cukup
 murah meriah?

 rgds,
 uwo

 --
 Berhenti langganan: [EMAIL PROTECTED]
 Arsip dan info: http://linux.or.id/milis



-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Linux embeded

2008-06-19 Terurut Topik Eko Prasetya
Saya pakai yang dari Kontron:
http://us.kontron.com/about-kontron/news-events/kontron+introduces+starter+kit+for+xboard+pxa+.html

Harga-nya saya kurang tahu, soalnya itu urusan hardware department.
Tapi kalau ngga salah ~$300-an. Sudah termasuk touch-screen LCD,
dan USB controller. Saya menggunakan Linux 2.6.20.


KOkon.

2008/6/18 uwo [EMAIL PROTECTED]:
 Menarik... tipe apa Pak? barangkali bisa tahu biar sy browse di net.

 rgds,
 uwo

 Eko Prasetya wrote:

 Yang paling kecil pernah saya pakai:
 PXA, ARM processor, RAM 128MB, NAND-Flash 64MB.
 Menggunakan busy-box, direct frame-buffer dan OWB browser.


 KOkon.

 --
 Berhenti langganan: [EMAIL PROTECTED]
 Arsip dan info: http://linux.or.id/milis



-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Linux embeded

2008-06-19 Terurut Topik Eko Prasetya
Saya belum pernah menggunakan AT89xxx. Saya pernah membuat aplikasi dengan
AVR AtMega128. Saya rasa overkill kalau musti load Linux di sana.
Biasanya, AVR tidak punya memory paging, memory terbatas, storage juga terbatas.
Saya tidak yakin bisa jalanin bash di sana.

Kita bisa bikin program kecil untuk super-loop, dan sleep (untuk save
power) kalau tidak
ada aktifitas. glibc sudah ada support buat AVR.
Jadi tinggal install interrupt handler-nya saja buat RS232 dan ethernet.


KOkon.

2008/6/19 uwo [EMAIL PROTECTED]:

 Tujuan utama nya sih membuat sistem minimum board untuk keperluan khusus.
 Cerita-nya ingin mengembangkan diri selain melulu menggunakan MCS-51/ Atmel
 AT89XXX. Pengen pake linux didalamnya, untuk itu pengen nyoba dulu lihat2
 mana yang sudah ada dan sudah support. Gitu Pak

 Skrg lagi perlu buat sebuah minimum board yang memiliki eth port, 4 serial
 Com. Option smentara ini adalah rabbit, nah sedang cari option lain yaitu
 linux (krn pengen nya sebetulnya linux). Syukur2 bisa design sendiri
 sekarang sedang baca2 nyuntik linux di AVR. Mungkin ada rekan yg bisa share
 ttg bidang ini?

 rgds,
 uwo_

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Linux embeded

2008-06-19 Terurut Topik Eko Prasetya
Coba saja cari development board buat ATMega128.
Dulu saya menggunakan development board dari bdmicro buat test
(http://www.bdmicro.com/mavric-ii/),
sebelum hardware board kita jadi.

Harganya cukup terjangkau, dan JTAG debugger-nya juga cukup murah.
JTAG software-nya
gratis, bisa langsung download dari atmel.

Compiler-nya GCC, tinggal download glibc source code, terus diconfigure ke avr.
glibc-nya sudah termasuk boot-loader, dan interrupt handler API.


KOkon.

2008/6/19 uwo [EMAIL PROTECTED]:
 Mungkin gk harus nyimpen shell di system, step yg penting bisa coding pake C
 dengan compiler GCC dan nge-thread. salah satu serial jadi console perintah2
 sederhana. Kira2 avr tipe apa ya?


 Eko Prasetya wrote:

 Saya belum pernah menggunakan AT89xxx. Saya pernah membuat aplikasi dengan
 AVR AtMega128. Saya rasa overkill kalau musti load Linux di sana.
 Biasanya, AVR tidak punya memory paging, memory terbatas, storage juga
 terbatas.
 Saya tidak yakin bisa jalanin bash di sana.

 Kita bisa bikin program kecil untuk super-loop, dan sleep (untuk save
 power) kalau tidak
 ada aktifitas. glibc sudah ada support buat AVR.
 Jadi tinggal install interrupt handler-nya saja buat RS232 dan ethernet.


 KOkon.

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] perl killed ketika buka file besar

2008-04-20 Terurut Topik Eko Prasetya
Mustinya bisa. Coba diganti bagian foreach()-nya menjadi:

foreach $line (LOG {
  print $line;
}


KOkon.

2008/4/20 dv0r4k [EMAIL PROTECTED]:
 Kang, saya sudah uncompressed datanya menjadi 1.9GB sehingga ndak perlu
 gunzip -c lagi. Perl-nya juga saya bikin simpel, tapi koq tetep killed ya
 ? apa memang perl ndak bisa buka file yang besar ?

  ---perlkilled.pl---

  #!/usr/bin/perl -w

  use strict;

  $|=1;

  my $LOGF=$ARGV[0];
  open(LOG,$LOGF) || die Can't open file $LOGF: $!\n;
  foreach (LOG) {
print x;

  }
  close (LOG);
  print finish!!\n;
  ---

  ---error---
  [EMAIL PROTECTED] ~]$ ./perlkilled.pl
 /var/www/html/reports/logs/uncompr_20080226.log
  Killed
  [EMAIL PROTECTED] ~]# free -m
 total   used   free sharedbuffers cached
  Mem:  2027655   1372  0  1599
  -/+ buffers/cache: 53   1973
  Swap:  511 23488
  [EMAIL PROTECTED] ~]#
  ---

  Help!

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] perl killed ketika buka file besar

2008-04-20 Terurut Topik Eko Prasetya
Don't thank me, thank Ronny. My solution didn't work :)


KOkon.

2008/4/20 dv0r4k [EMAIL PROTECTED]:
 Ronny Haryanto wrote:


  Wah saya kira selama ini foreach () itu udah scalar karena muncul $_.
 Ternyata dia juga pake implicit array @_ tho...
  Saya sudah ganti jadi while (my $ln = LOG), dan sudah bisa jalan. Makasih
 banyak Mas Ronny  Mas Eko.

  Jadi while () ini sepertinya ndak utilize @_ ya ?

  EF

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] perl killed ketika buka file besar

2008-04-18 Terurut Topik Eko Prasetya
Darn, baca perl susah amat ya.

Anyhow, problemnya out of memory, Anda tentu sudah tahu.

Kemungkinan sih dari open() yang gunzip itu. Saya takutnya kalau gunzip() itu
dikirim ke pipe, dan open() di situ harus simpan semua datanya di buffer, 2GB
is a big number.

Kalau mau di coba, setelah open(gunzip), coba print() sesuatu. Coba cari tahu
apakah open() nya berhasil atau tidak.

Kalau misalkan tidak berhasil, mungkin sebaiknya file-nya di gunzip dulu, baru
di open() hasil uncompressed-nya, dengan asumsi hard-drive-nya masih punya
free-space banyak.


KOkon.

On Fri, Apr 18, 2008 at 2:10 AM, dv0r4k [EMAIL PROTECTED] wrote:
 Halo semua,
  Saya membuat perl script untuk ngebaca log apache terkompresi dgn gzip.
 Jika skrip ini saya jalankan ke log ukuran kecil script tsb berjalan dgn
 baik. Tapi begitu saya jalanin di ke file besar (100MB compressed, 2GB
 uncompressed), script tsb akan terbunuh (sepertinya oleh OS (ulimit?)).

  Kenapa yak ?? Mungkin cara open() saya salah ?? help!

  EF


  .:cnt_sssn.pl:.
  ==
  #!/usr/bin/perl -w

  use strict;
  use Time::Local;

  $|=1;

  my $SESSION=24; # to define 1 session, in
 minutes.
  my $LOGF=$ARGV[0];

  my @uips;
  my $uiplmt=500; # limit before it flush to file
  my $uipflcntr = 0;
  my $sesslim = $SESSION * 60;
  my $totalsession;

  open(LOG,gunzip -c $LOGF | ) || die Can't open file $LOGF: $!\n;
  foreach (LOG) {
chomp;
my @rawln = split(/\s{1,}/,$_,6);
next if (not defined($rawln[5]));
my ($ips,$timing,$url) = ($rawln[5] =~ m#^(.*) \[(.*)\] (.*)#);
push(@uips,$ips) if ( ! grep(/$ips/,@uips) );
if ($#uips  $uiplmt) {
print UIP reached $uiplmt, flush to file
 .uip.$uipflcntr.\n;
$,=\n;
open(UIPFL, .uip.$uipflcntr);
print UIPFL @uips;
close(UIPFL);
undef @uips;
$uipflcntr++;
}
  }
  close(LOG);

  print finish\n;
  ==


  Ketika di running:::
  ==
  [EMAIL PROTECTED] ~]$ ./cnt_sssn.pl 
 /var/www/html/reports/logs/20071012.log.gz
  finish
  [EMAIL PROTECTED] ~]$ ./cnt_sssn.pl 
 /var/www/html/reports/logs/20080226.log.gz
  Killed
  [EMAIL PROTECTED] ~]$ ll -h
 /var/www/html/reports/logs/{20071012.log.gz,20080226.log.gz}
  -rw-rw-r--  1 batch devel  22K Oct 12  2007
 /var/www/html/reports/logs/20071012.log.gz
  -rw-rw-r--  1 batch root  107M Feb 26 23:59
 /var/www/html/reports/logs/20080226.log.gz
  [EMAIL PROTECTED] ~]$ dmesg | tail
  HighMem: 60*4kB 46*8kB 10*16kB 2*32kB 0*64kB 0*128kB 0*256kB 1*512kB
 0*1024kB 0*2048kB 0*4096kB = 1344kB
  Swap cache: add 5787810, delete 5780748, find 8492876/8794717, race 0+3
  0 bounce buffer pages
  Free swap:0kB
  524282 pages of RAM
  294906 pages of HIGHMEM
  5289 reserved pages
  31741 pages shared
  7062 pages swap cached
  Out of Memory: Killed process 20900 (cnt_sssn.pl).
  [EMAIL PROTECTED] ~]$
  ==

  contoh data (log apache):::
  ==
  Oct 12 23:51:15 10.0.0.2 ip_log: 10.0.0.5 - -, - - [12/Oct/2007:23:50:50
 +0800] GET / HTTP/1.0 200 8784 - check_http/1.104 (nagios-plugins
 1.4.9)
  Oct 12 23:53:37 10.0.0.3 ip_log: 10.0.0.5 - -, - - [12/Oct/2007:23:53:24
 +0800] GET / HTTP/1.0 200 8784 - check_http/1.104 (nagios-plugins
 1.4.9)
  Oct 12 23:54:15 10.0.0.2 ip_log: 10.0.0.5 - -, - - [12/Oct/2007:23:53:50
 +0800] GET / HTTP/1.0 200 8784 - check_http/1.104 (nagios-plugins
 1.4.9)
  ==

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] nanya dunk

2008-01-30 Terurut Topik Eko Prasetya
Tanpa grep:
 ls -l --ignore=*etc*


KOkon.

2008/1/30 Fajran Iman Rusadi [EMAIL PROTECTED]:
 2008/1/31 net [EMAIL PROTECTED]:

  mau nanya kalo misal saya mau nampilin isi directory
  yg ada kata etc kan seperti ini
  ls -l | grep etc
  kalo mau kebalikan nya gimana ya
  mau nampilin isi directory selain dari etc
 


-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Rekursi direktori dengan shell UNIX?

2008-01-23 Terurut Topik Eko Prasetya
find . -name \*.txt -exec rm {} \;


KOkon.

2008/1/23 Adhi Hargo [EMAIL PROTECTED]:
 I feel stupid asking... Saya ingin migrasi lingkungan
 pemrograman sepenuhnya ke Linux, tapi belum terbiasa
 dengan pemrograman shellnya. Satu contoh sederhana
 adalah rekursi direktori. Di shell Windows (cmd.exe),
 saya dengan mudah dapat menggunakan

   for /R f in (*.txt) do mengutak-atik %f

 Di shell UNIX saya baru tahu pakai

   for f in *.txt; do mengutak-atik %f; done

 tapi cara ini hanya mengolah satu level direktori! Apa
 saja alternatif cara untuk rekursi direktori dalam
 shell Unix saja? (firasat saya, ada banyak...)

 Untuk setiap respon, saya ucapkan terima kasih
 sebelumnya.

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] tanya skrip c++ lagi...

2008-01-21 Terurut Topik Eko Prasetya
GCD? Coba pake ini aja.

int a = 1000;
int b = 30;
while (b  0)
{
int c = a % b;
a = b;
b = c;
}
printf(%d\n, a);


KOkon.

2008/1/21 genjuro [EMAIL PROTECTED]:
 saya juga mau nanya ttg skrip untuk menghitung FPB apa
 betul kyk gini? (maklum blm di kompile... hehehehe)

 #include iostream
 using namespace std;

 int main() {
int more, less, mod1, mod2, stepup, equal;
stepup = 1;
equal = 1;
cout  masukkan angka yang lebih kecil: ;
cin  less;
cout  masukkan angka yang lebih besar: ;
cin  more;

while (stepup = more) {
mod1 = less % stepup;
mod2 = more % stepup;

if (mod1 == 0  mod2 == 0) {
if (stepup != more) {
equal = stepup;
++stepup;

else
++stepup;
}

else
++stepup;
}

cout  FPB untuk   less   dan   more  
 adalah: ;
cout  equal;

return 0;
 }

 harap koreksiannya ya...

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] kylix

2007-11-10 Terurut Topik Eko Prasetya
Comments inline...

On Nov 10, 2007 1:10 AM, Vajrasky Akbar Kok [EMAIL PROTECTED] wrote:

 Python tidak akan menggantikan Java. Titik. Mereka berada di dunia
 berbeda. Yang satu static typing, yang lain dynamic typing.
 Lagipula Python terlalu lambat (bahkan dengan beberapa bagian diganti
 dengan  C/C++) dibandingkan dengan Java untuk beberapa
 aplikasi. Lambatnya yah sebagian dikarenakan dynamic typing-nya.

Static/dynamic typing bukan merupakan alasan untuk tidak menggantikan keduanya.
Kita menggunakan bahasa pemrograman yang cocok dengan masalah yang akan kita
selesaikan.

Memang betul Python lebih lambat, tapi itu merupakan trade-off, sama
halnya dengan Java
waktu menggantikan C++. Apabila kita bisa menerima kekurangan-nya,
mengapa tidak?
Apalagi jika dibayar dengan produktifitas yang lebih tinggi?

 Python satu dunia dengan Perl dan Ruby. Java satu dunia dengan C#.


Sekarang sudah mulai banyak yang membanding-bandingkan antara Java
dengan Python.
Sama dengan 5-10 tahun yang lalu dimana Java dibanding-bandingkan dengan C++.
Waktu itu, Java berada di dunia yang berbeda dengan C++. Namun
kenyataannya, banyak
aplikasi yang dibuat di C++ pada akhirnya dibuat dengan Java.

Berikut ini ada beberapa link yang membanding-bandingkan Java dengan Python.

http://www.dmh2000.com/cjpr/index.shtml
http://www.ferg.org/projects/python_java_side-by-side.html

 Sedangkan mengenai hal sintaks yang mudah dimengerti  (oke, ini sangat
 subjektif), bagi saya Ruby lebih mudah dimengerti dari Python.

Yang jadi masalah dari Ruby adalah komunitasnya yang masih relatif kecil.
Selain itu Ruby cukup bagus.


Thanks, KOkon.

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] kylix

2007-11-09 Terurut Topik Eko Prasetya
Saya bukan expert di bahasa pemrograman, so don't just take my word for it.

Menurut saya, Python merupakan bahasa pemrograman yang akan menggantikan Java.
Python bisa digunakan untuk rapid prototyping.
Syntax yang digunakan juga mudah dimengerti, dan sangat
singkat/compact dibandingkan
bahasa pemrograman yang lain.

Ide utamanya, buat dulu dengan Python, dan kalau ada performance
issue, di-profile,
dan ganti bottle-neck-nya dengan C/C++ library (or assembly if makes sense).

Support Python sangat besar, terutama di segi komunitas. Perusahaan-perusahaan
besar juga sudah berpindah ke python untuk beberapa project utama mereka.

Sebagai contoh, perusahaan saya, bergerak di bidang Ethernet transport (160Tbps)
untuk core network, menggunakan Python hampir di semua management layer-nya.
Saya juga agak skeptis waktu mencoba belajar Python, tapi setelah
melihat bagaimana
membuat CLI application dalam waktu 1 jam, dibandingkan dengan 1
minggu dengan C/C++,
oh boy, I'm sold.

Saya juga coba membuat aplikasi untuk dynamic web, untuk simple
data-entry dan polling
(no fancy UI), hanya perlu 2 jam dengan django. Itu sudah termasuk
setup DB dan HTML
page sederhana.

Ini ada artikel menarik tentang Python. Artikel ini ditulis di tahun
2000-an. Worth to read.
http://www.linuxjournal.com/article/3882


KOkon.

On Nov 8, 2007 6:24 PM, Catur Wirawan Wijiutomo
[EMAIL PROTECTED] wrote:
 Dengan hormat

 sebenarnya sama masih baru juga. tapi menurut pengalaman saya:
 1. lazarus, sampai sekarang masih beta version. tapi lazarus merupakan
 solusi untuk yang ingin memprogram GUI object pascal (mirip delphi).
 mungkin lebih baik dari kylix karena kylix sudah tidak dikembangkan
 lagi. sangat bisa diandalkan walaupun masih beta.

 2. python, menurut saya yang satu ini adalah bahasa scripting, tapi
 sangat fleksibel. standarnya tampilannya interpreternya seperti
 terminal dan menggunakannya mirip bash. walau begitu bisa digunakan
 untuk berbagai macam keperluan dari pemrograman visual dengan tool
 namanya boa constructor sampai pemrograman jaringan.

 kalau ada yang salah mohon dikoreksi

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] kylix

2007-11-08 Terurut Topik Eko Prasetya
If that's the case, kenapa ngga pake Python? :)


KOkon.

On Nov 8, 2007 6:49 AM, Martinus Ady H [EMAIL PROTECTED] wrote:
 elroy wrote:
  tolong dunk
 
  aku baru install kylix di suse 10.2 tapi begitu di load gak nongol tuch
  kylix
  ada yang bisa bantu gak ya...
 
 Daripada pakai kylix kenapa ga coba pakai Lazarus[1] dan
 FreePascalnya[2] om ?

 [1] http://www.lazarus.freepascal.org/
 [2] http://www.freepascal.org/

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Assembler untuk backend kompiler

2007-09-26 Terurut Topik Eko Prasetya
Kalau mau, bisa di compile manual glibc-nya. Ambil yang perlu-perlu aja,
dan di-link object-nya satu persatu. Mustinya bisa diperkecil lagi.


KOkon.

On 9/26/07, Yohanes Nugroho [EMAIL PROTECTED] wrote:
 Halo,

 Saya cuma pernah make gas dan nasm. menurut saya lebihnya GAS adalah
 kalo suatu saat ingin mendukung prosessor selain ia-32/64, itu lebih
 mudah dilakukan. Linker bisa tetap pake ld.

 GAS + LD kayanya cukup besar, dan bakal sulit dikecilkan, meski di
 strip as yang udah dynamically linked di MIPS saya besarnya 1.3 mb, di
 Windows saya 600 kb. Mungkin bisa dicompile pake -Os terus pake UPX
 bisa dikecilkan lagi, tapi saya belum nyoba jadi seberapa kecil.

 Beberapa alternatif yang bisa dilakukan:
 - bikin linker + assembler yang built in (misalnya seperti pada
 tcc/tiny c compiler)
 - pake solusi yang berbeda di Windows dan Linux (di Windows pake alink
 misalnya, dan di Linux pake ld)

 Btw, mau bikin bahasa apa nih ceritanya?

 --
 Regards
 Yohanes
 http://blog.compactbyte.com

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] tanya c++

2007-08-13 Terurut Topik Eko Prasetya
Bukannya illegal, tapi tidak disarankan.
Contoh berikut ini bisa dijalankan kok:

#include stdio.h

int main()
{
static int x = 0;
x++;
printf(%u\n, x);
if (x  10)
main();
}


KOkon.

On 8/13/07, genjuro [EMAIL PROTECTED] wrote:
 h, jadi ternyata jawabannya harus membuat fngsi yang
 baru ya... ok ada masukan dari yang lain? soalnya gw emang
 pernah di kasi tau klo mo memanggil fungsi main() itu
 secara manual adalah ilegal, hanya mo bertanya doang
 mengenai main() itu... thnks ya atas balasannya
 salam...

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] tanya c++

2007-08-13 Terurut Topik Eko Prasetya
Ada code snippet dan console log-nya ngga?


KOkon.

On 8/13/07, danu [EMAIL PROTECTED] wrote:
 Saya juga baru banget belajar C++. Sekarang saya selalu menggunakan GCC
 Untuk mengcompilenya. Tapi sering terjadi error saat mengcompilenya errornya

 File or directory not found saya curiganya ketika menggunakan libarari gcc

 Tidak menemukannya. Gimana yak solusinya ?

 Thanks,


 Danu Sukmawijaya

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] tanya c++

2007-08-06 Terurut Topik Eko Prasetya
- main() adalah entry point yang dipanggil oleh glibc setelah glibc
menyelesaikan
proses inisialisasi-nya.
- gunakan strncmp() untuk compare string.


KOkon.

On 8/5/07, ody [EMAIL PROTECTED] wrote:
 1. cara untuk melihat apakah C++ di  mswindows 
 gnu/linux sama adalah dengan HAND ON ...
 2. coba belajar C++ lebih giat lagi, and you'll know
 what ur mistake is.
 --- genjuro [EMAIL PROTECTED] wrote:

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] mengenai pointer di C

2007-07-24 Terurut Topik Eko Prasetya


dari contoh kode yg anda tulis, memang hanya
buang2x waktu saja. penggunaan pointer amat penting
bila menyangkut pengiriman variabel sbg parameter
dari suatu fungsi, bila parameter merupakan tipe data
primitif (char, short, int, long, float, double),
anda mungkin tdk memerlukan pointer namun bila
variabel yg digunakan sbg parameter fungsi berupa
struct (terutama yg berukuran besar), pointer 'harus'
digunakan karena bila tidak menggunakan pointer,
copy dari variabel tsb akan dibuat dan hal ini tentu
akan menghabiskan memory dan memperlambat waktu


Kebanyakan compiler sekarang, terutama yang calling-convention-nya
menggunakan register (bukan stack seperti x86), biasanya passing
struct secara otomatis akan mengirimkan alamatnya.



pointer juga bisa digunakan utk hal2x keren (???),
misalnya mengganti nilai dari suatu variabel
bertipe const


const digunakan dengan tujuan agar nilai variable tidak diubah.
Penggunaan pointer untuk mengakses nilai variable const akan
menyebabkan masalah, terutama apabila variable const ini terletak
di read-only segment (eg. text-segment).



#include stdio.h

int main (void)
{
  const long int a = 0x1234abcd;

  printf(%lx\n, a);
  /* dereference pointer */
  ((unsigned char *)a)[0] = 0xff;
  ((unsigned char *)a)[1] = 0xee;
  printf(%lx\n, a);

  return(0);
}


Code ini akan bermasalah untuk processor yang endian-nya berbeda.

Contoh yang cocok mungkin adalah penggunaan memory map register.
Biasanya, hardware memiliki sejumlah register yang harus diakses di memory
tertentu. Untuk mengakses struktur ini, kita harus menggunakan pointer.

eg.
struct regs_t{
 uint32_t version;
 uint32_t control;
};

regs_t* regs = (regs_t*) 0xA000;
printf(%0x%08x\n, regs-version);
printf(%0x%08x\n, regs-control);



KOkon.

--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] mengenai pointer di C

2007-07-05 Terurut Topik Eko Prasetya

Untuk lebih detail, virtual memory digunakan oleh operating system
untuk mengatur
penggunaan memory di tiap-tiap process.
Setiap process/application menggunakan static address untuk memulai programnya
(di luar dynamic library). Supaya setiap process bisa menggunakan
lokasi yang sama,
maka OS menggunakan virtual memory untuk memetakan memory dari tiap process
ke lokasi yang berbeda di physical memory.

Setiap processor memiliki feature yang berbeda-beda untuk menangani MMU
(Memory Management Unit). Tapi biasanya mereka punya support ke access level.
OS bisa menentukan apakah suatu virtual memory bisa ditulis, dibaca, atau bisa
dieksekusi.

Selain itu, virtual memory ini bisa memastikan bahwa tiap process
tidak bisa mengakses
memory di process lainnya, karena virtual memory-nya memang menunjuk ke
physical memory yang berbeda-beda.

Virtual memory dibagi-bagi menjadi page memory. Biasanya besarnya 4KB,
dan setiap process memiliki page-map yang di-update setiap kali
terjadi task switching
berdasarkan process mana yang berjalan.

Mengenai hard-disk memory (atau swap file), ini biasanya terjadi apabila jumlah
memory yang dibutuhkan oleh semua aplikasi melebihi jumlah physical
memory yang ada.
Untuk itu OS menggunakan swap file untuk memindahkan isi dari physical memory
yang jarang digunakan (banyak metode, salah-satunya LRU-Least Recently Used),
ke swap file, dan physical memory tadi di-free.

Bagaimana bila process yang menggunakan memory (yang baru dipindah ke
swap file tadi) ingin meng-akses memory-nya? Berhubung virtual memory
nya sekarang tidak
mengakses physical memory yang valid, maka process akan mengeluarkan
page-miss exception. Di sini OS akan tahu bahwa memory yang di simpan di
swap file tadi harus dikembalikan ke physical memory, dan virtual
memory dari process
tadi harus dibetulkan.

Proses ini yang makan waktu banyak. Oleh karena itu, alokasi memory
dari heap tadi
tidak begitu bermasalah untuk RAM yang besar, tapi untuk RAM yang kecil, bisa
menciptakan bottle-neck yang besar.

Hope it clarifies things


KOkon.

On 7/3/07, Danny Kurniawan [EMAIL PROTECTED] wrote:


Seharusnya baik di Windows maupun di Linux berlaku hal yang sama, bedanya, di
Linux anda tidak akan bisa melihat pengurangan space harddisk anda, karena
swap di Linux diletakkan di partisi yang berbeda atau single block file...

Mengapa space harddisk yang berkurang... saya jelaskan sedikit mengenai
manajemen memory di OS...

pada dasarnya setiap OS modern (Windows, Linux, MacOS, Unix... etc) melakukan
manajemen memory dengan membuat yang dinamakan Virtual Memory... pada
intinya virtual memory adalah mekanisme mapping address memory yang ada
menuju ke device apapun... biasanya OS menggunakan 2 macam memory, yaitu
physical memory (RAM) dan hard memory (harddisk), jika OS hanya menggunakan
physical memory saja, maka OS tidak akan cukup untuk memenuhi kebutuhan
memory bagi beberapa aplikasi yang sedang multitasking... sedikit gambaran
kira2 mengenai virtual memory dan mapping-nya:

Virtual AddressPhysical Address
---
000-0001000   -   RAM Addr 00010-01010
0001001-0002000   -   RAM Addr 05000-06001
0002001-0003000   -   Harddrive Addr 000-0001000
0003001-0004000   -   RAM Addr 01011-02012
0004001-0005000   -   Harddrive Addr 0001001-0002000

dst.

Nah... seperti anda lihat, bahwa dalam Physical Address, letak memory bisa
dimana saja dan acak... Sedangkan bagi aplikasi, mereka tidak perlu
mengetahui dimana sebenarnya data yang disimpan diletakkan secara fisiknya...

Jadi tugas OS lah yang melakukan manajemen baik melakukan
pemindahan/relocation maupun melakukan mapping, dan menandai memory kosong
atau alokasi memory secara fisik...


--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] mengenai pointer di C

2007-06-28 Terurut Topik Eko Prasetya

By default, operator new() selalu mengakses ke heap/memory.
Tapi seandainya heap memory tidak cukup, maka operating system
bisa mem-swap memory ke hard-disk sebagai tambahan (virtual memory).

Ini semua tergantung dari physical memory, dan swap partition dari operating-
system-nya. Kalo memory-nya gede banget, misalnya 2GB, waktu allocate
400MB, mustinya ngga akan akses hard-drive sama sekali.


KOkon.

On 6/28/07, Uno Tursadi [EMAIL PROTECTED] wrote:

Sedikit menambahkan, saya pernah experiment, di windows bukan di linux.

Membuat variable pointer dengan ukuran yang sangat besar. Missal
int *i;
i = new int [1];

satu integer berukuran 4 bytes jadi variable i kalo di isi semua akan
menghabiskan 400 MBytes.

Ternyata 400 MB itu diambil dari kapasitas hard disk. Ukuran hard disknya
berkurang sebanyak 400Mbytes.

Artinya pada saat kita membuat sebuah variable pointer. Variable tersebut
akan mengambil jatah byte yang ada di hard disk.
Dan setiap kali aplikasi menulis atau membaca variable tersebut, akan
mengakses data hard disk.

Harusnya jika sebuah aplikasi mengambil dan menulis ke hard disk akan lebih
lambat dibanding ke memory langsung.
Artinya, pointer lebih lambat dibanding memori langsung.

Bener gak???
Gak tau kalo di linux soalnya belum pernah nyoba.

CMIIW


--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] multiple indirection (in C)

2007-03-04 Terurut Topik Eko Prasetya

On 3/4/07, Yohanes Nugroho [EMAIL PROTECTED] wrote:

Array:

jika kita hanya punya 5 array global (asumsi tidak ada variabel global
lain), maka ukuran section data kira2 sebesar 5 array itu (mungkin ada
tambahan alignment).


Correct.


Pointer:
Jika kita mengalokasikan 5 array di heap, maka alokator akan mencari
ruang kosong dan mengalokasikan ruang itu (tergantung apakah alokator
ini sifatnya menggunakan garbage collection atau tidak, mungkin juga
perlu membebaskan alokasi).


Correct.


 Kecepatan XXalloc() tergantung dari stdc library yang digunakan.

Tepatnya tergantung alokator yg digunakan, kita tidak harus
menggunakan dari stdc. misalnya ketika saya memprogram embedded
device, saya pake alokator sendiri yang mengambil memory dari array.


Untuk embedded device, saya cenderung menggunakan block factory
(atau kumpulan array static), dimana ukuran size yang diperlukan sudah bisa
diprediksi dari awal. Ini untuk mengurangi memory fragmentation.

Tapi terutama untuk support C++ program, banyak case dimana mereka
sering menggunakan heap allocator. Banyak implementasi XXalloc() yang bisa
mengganti stdc, tanpa harus mengganti caller-nya.
Ini biasanya saya pakai untuk mendeteksi memory leak, etc.



Note:
contoh alokator dgn garbage collection adalah boehm:
http://www.hpl.hp.com/personal/Hans_Boehm/gc/


Thanks for the link. Very interesting to read.


KOkon.

--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] multiple indirection (in C)

2007-03-01 Terurut Topik Eko Prasetya

Tapi dengan 1 dimensi, kita alokasi heap-nya hanya sekali, dan ini mengurangi
kemungkinan fragmentasi memori.


KOkon.

On 2/28/07, Ifnu _ [EMAIL PROTECTED] wrote:

 Apakah para programmer C selalu menggunakan pointer 2 kali (misal **a)
 untuk menyimpan array 2D dan pointer 1x (misal *b) untuk menyimpan
 array 1D?

ini nggak selalu, tapi lebih ke kebutuhan saja, karena array 2 D
dengan menggunakan pointer to pointer lebih fleksible karena dynamic
allocation.

sebenernya bisa aja 2D diimplementasi dengan bikin array 1 dimensi
trus elementnya berupa pointer *b yang diinisiasi ukuranya menggunakan
malloc, tapi balik lagi ke urusan fleksibilitas.

:D

CMIIW

regards


--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] multiple indirection (in C)

2007-02-27 Terurut Topik Eko Prasetya

Ada #include stdlib.h ngga di awal file?


KOkon.

On 2/27/07, pinguin [EMAIL PROTECTED] wrote:

Nambah lagi ya,.
Sebenarnya kalo saya pake : la = (int**)malloc(m*sizeof(int*));
yang berarti untuk alokasi array.

muncul pesan:
warning: incompatible implicit declaration of built-in function 'malloc'


Terima kasih.

--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis




--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] Cara Bikin Daemon

2007-01-31 Terurut Topik Eko Prasetya

Ini kalo di C:

   pid = fork();
   if (pid != 0)
   {
   // Exit the parent.
   exit(0);
   }
   else
   {
   // Make this guy a process group leader.
   pid = setsid();
   if (pid == -1)
   {
   printf(Error!\n);
   }
   }


KOkon.

On 1/31/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:


Kalau pake redhat (dan turunannya) coba lihat file di :

/etc/init.d/

copy salah satu file misal httpd jadi daemon_saya, terus di modif bikin
suatu service baru jadi gini:

service daemon_saya status|start|stop|restart

rgds,
_uwo_


--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] gcc -Wall tdk memberi warning

2006-05-08 Terurut Topik Eko Prasetya

awal[3] tidak dimasukkan ke data segment, karena awal[3] tidak di-initialize.
Non-initialized variable diletakkan di BSS, tergantung O/S-nya, BSS
bisa di-initialize
dengan 0, atau untuk debugging mode, bisa dengan any value (eg. 0x di
visual C++).

Stack-segment hanya digunakan untuk thread/function, bukan untuk
global variable.
Biasanya compiler tidak akan optimize global variable, karena compiler
hanya compile
satu file saja. Si compiler tidak tahu siapa saja yang refer ke variable ini.
Mungkin saja, ada file .C lainnya yang mengakses global variable ini,
dan di-link bersamaan.


KOkon.

On 5/4/06, Danny Kurniawan [EMAIL PROTECTED] wrote:

Kemungkinan penjelasan mas Eko benar... tapi saya menduga tidak diletakkannya
awal[3] pada Data Segment, disebabkan karena adanya optimasi dari compiler
yang mungkin diletakkan pada Stack Segment karena sifatnya hanya sementara,
yaitu hanya digunakan dalam function main()...

Coba compile tanpa optimasi: gcc -Wall -O0 -o str1 str1.c
dan lihat apakah hasilnya seperti yang diharapkan: ABCDE ???


--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis



Re: [linux-programming] ttg g++ warning

2006-05-04 Terurut Topik Eko Prasetya

Yepp, example:
gcc -Wno-deprecated test.c


KOkon.

On 5/4/06, Yanu Widodo [EMAIL PROTECTED] wrote:

apa semacam option ?


--
yanu

On Friday 05 May 2006 00:45, Eko Prasetya wrote:
 -Wno-deprecated berarti warning untuk deprecated function (obsolete)
 ngga dimunculkan.


 KOkon.


--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis