jajak pendapat, ping, pubsub, pubsubhub, PubSubHubbub
Dalam kasus Anda yang skeptis, ada metode dalam kegilaan di atas, dalam judul posting. Dalam lingkungan teknologi tidak mungkin bahwa Anda belum pernah mendengar dari PubSubHubbub. Dalam beberapa bulan cepat, telah menjadi salah satu dari tiga besar berbicara tentang hal. Dua lainnya adalah enkripsi homomorphic dan Google gelombang [ 1. ]. Kembali ke pos saat ini - istilah dalam judul menunjukkan bagaimana Anda mendapatkan isi dari orang lain. Rincian berikut menjadi lebih jelas, jika Anda membayangkan hal yang terjadi sehubungan dengan blog, meskipun mereka secara konseptual tidak terbatas pada blog.
Polling mengacu pada skenario di mana klien terus bertanya server jika sesuatu yang baru telah datang. Seberapa sering meminta update akan selalu menjadi masalah dengan pemungutan suara terlalu sering atau terlalu jarang, tetapi sebagai satu pembaca menunjukkan di sini bahwa salah satu besar, hal dengan pemungutan suara adalah server yang tidak memiliki untuk mempertahankan negara.
Ping mengacu pada kasus dimana ketika memposting suatu artikel, Anda (atau perangkat lunak Anda) juga update beberapa (pusat) layanan populer update. Beberapa latar belakang sini .
Berikutnya adalah pubsub yang merupakan singkatan mempublikasikan / berlangganan, salah satu lapangan awal untuk itu dibuat di sini oleh Evan Henshaw-Plath dan Kellan Elliott-McCrea (72 slide tapi layak akan melalui). Contoh menarik yang mereka berikan terhadap adalah ini - pada tanggal tertentu, Friendfeed merangkak Flickr 2,9 juta kali untuk mendapatkan foto terbaru dari 45.754 pengguna, dimana 6.721 telah mengunjungi Flickr pada mereka 24 jam dan bisa 'berpotensi' upload foto. Perhatikan bahwa apa yang mereka diusulkan adalah bukan teknologi baru, karena mereka menunjukkan 'revolusioner baru 20 tahun teknologi lama'. Jika Anda melakukannya untuk blog maka salah satu masalah utama dengan XMPP - kehadiran Data overhead, yang mungkin setinggi 60-70% dapat dikurangi banyak.
pubsubhub singkatan mempublikasikan hub berlangganan dan PubSubHubbub adalah sebuah protokol, inti dari yang merupakan ide pubsubhub. Penerbit dimana (katakanlah blogger) memperbarui hub yang (mungkin lebih dari satu hub, yang berbicara satu sama lain) berada 'di suatu tempat di awan', sesuai protokol ini dapat mendorong atau menarik sesuai protokol tetapi link berikutnya dalam rantai, hub ke klien (misalnya pembaca) itu selalu mendorong model. Ini halaman adalah baik titik awal untuk PubSubHubbub, slide gambaran yang baik. Pernah fasih Anil Dash menggambarkannya sini sebagai tombol tekan web.
Dua kali dibaca terkait lainnya adalah webhooks yang pada dasarnya callback http. Github menggunakan itu, demikian juga paypal untuk pemberitahuan asynchronous pembayaran di IPN . Begitu banyak lainnya. Konsep terkait rsscloud yang lagi hub pubsub. Ikuti ini link untuk rincian.
Anda mungkin bertanya-tanya apa gunanya menulis semua ini di sini, ada dua 1. Hal-hal ini layak mengetahui, minimal setidaknya dan 2. Blog ini adalah PubSubHubbub diaktifkan sekarang melalui hub appspot menggunakan wordpress Plugin dan pakan juga adalah PubSubHubbub diaktifkan melalui feedburner, link di sini
-
[ 1 ]. - Baik pengantar membaca untuk enkripsi sepenuhnya homomorphic adalah ini artikel oleh Bruce Schneier dan ini bicara kurang lebih satu-satunya sumber untuk gelombang Google.
-UPDATE - Ini posting menjelaskan bagaimana kebutuhan server publik untuk panggilan balik dapat bekerja di sekitar untuk klien desktop dengan menggunakan gateway XMPP (untuk PubSubHubbub).
Sedikit perakitan
Setelah membaca ini artikel tentang buffer kunci gratis dan melihat penggunaan CAS (bandingkan dan swap), saya merasa seperti posting kode perakitan untuk melakukan hal yang sama. Gunakan kasus di sana adalah untuk menulis sebuah metode asli dan menyebutnya dari Jawa (pada 1,5, saat bersamaan struktur data di Jawa lebih atau kurang non ada). Tanpa basa-basi, saya akan melepaskan kode ke Anda
. Pertama adalah untuk CAS dan kedua adalah untuk komputasi GCD menggunakan algoritma Euclid (yang satu ini dapat ditemukan di banyak tempat dan tutorial juga).
Kompilasi dan jalankan instruksi gcc file_name.c ; ./a.out
Bandingkan dan Swap
# Include# Include / / Tukar - newValue, comperand sudah tua / nilai yang diharapkan / * * Fungsi sebenarnya melakukan hal yang berikut - jika nilai pada * dest sama dengan oldvalue kemudian menggantinya dengan newValue lain meninggalkannya tidak berubah: apakah semua atom * * Ada dua pilihan untuk nilai kembali * Nilai awal dari 1.is * dest dan meninggalkan beban fxn menelepon untuk membandingkannya dengan oldval 2. melakukannya di sini dan kembali 0 atau 1, ini harus lebih efisien ** / / * Kemudian mengubahnya ke makro * / int cas (int * dest, int oldvalue, int newValue) { printf ("(% d,% d,% d)", * dest, oldvalue, newValue); / * Int cas (int dest, int oldvalue, int newValue) {* / / * Int cas (int dest, int newValue, int oldvalue) {* / int result = 1 ;/ * 1 menunjukkan bahwa cas berhasil dan 0 menunjukkan bahwa ia gagal * / / * Btw perlu mengatur cc untuk bendera clobbering! * / __asm__ __ volatile__ ( "Movl% 2,%% eax \ n \ t" "Movl% 3,%% ebx \ n \ t" "Movl 0%,%% ecx \ n \ t" "LOCK \ n \ t" "CMPXCHG% ebx%, (%% ecx) \ n \ t" / * harus LOCK berada di baris yang sama * / "JZ DIBUAT \ n \ t" "Movl $ 0,% 1 \ n \ t" "DONE: \ n \ t" : "= M" (dest), "= g" (hasil) : "G" (oldvalue), "g" (newValue), "m" (dest) : "% Eax", "% ebx", "ecx", "cc" ); printf ("(% d,% d,% d)", * dest, oldvalue, newValue); kembali hasil; } / * TODO * Menulis lain fxn asm yang menempatkan di atas fxn dalam while loop dan terus mencoba kecuali jika berhasil * / int main () { int a = 5, b = 6; int * c = (int *) malloc (sizeof (int)); * C = 6; / * Int c = 6; * / printf ("% d \ n", cas (c, b, b)); printf ("% d \ n", cas (c, b, a)); printf ("% d \ n", cas (c, a, a)); printf ("% d \ n", cas (c, b, b)); * C = 6; / * C = 5; * / printf ("nilai perubahan * c ke% d \ n", * c); printf ("% d \ n", cas (c, b, b)); printf ("% d \ n", cas (c, b, a)); printf ("% d \ n", cas (c, a, a)); printf ("% d \ n", cas (c, a, b)); printf ("% d \ n", cas (c, b, a)); kembali 0; }
Format catatan - tampaknya seperti stabilo wp sintaks adalah menambahkan pada akhirnya, mengabaikan itu.
GCD
# Includeint FPB (int a, int b) { int hasil; / * Hitung Pembagi Bersama Terbesar menggunakan Algoritma Euclid 's * / __asm__ __ volatile__ ("movl% 1,% eax%;" "Movl% 2,%% ebx;" "Lanjutan: cmpl $ 0,%% ebx;" "Je DIBUAT;" "% Xorl% edx,% edx%;" "%% Idivl ebx;" "% Movl% ebx,% eax%;" "% Movl% edx,% ebx%;" "Jmp lanjutan;" "DONE:%% movl eax,% 0;": "= g" (hasil): "g" (a), "g" (b) ); kembali hasil; } int main () { int pertama, kedua; printf ("Masukkan dua bilangan bulat:"); scanf ("% d% d", & pertama, & kedua); printf ("GCD dari% d &% d adalah% d \ n", pertama, kedua, FPB (pertama, kedua)); kembali 0; }
Dunia cricketing Menanti New World Order
Setelah serangkaian mencakup lima tes dan sekitar dua bulan, Inggris abu direklamasi.
Mari kita bicara tentang tim pemenang pertama - order tengah mereka adalah 'rata' jika Anda tidak ingin kritis. Kontribusi Greame Swann dengan kelelawar akan menghitung tidak kurang dari kontribusi dengan bola. Stuart Broad - terbaik serba adalah non starter untuk tes ke-5. Andrew Strauss adalah pemukul hanya konsisten dan Jimmy Anderson adalah bowler hanya konsisten.
Point disini adalah untuk tidak mencaci-maki prestasi tim pemenang tapi untuk dimasukkan ke dalam perspektif fakta bahwa meskipun semua ini, Australia hilang. Anda harus berpikir beberapa detik, jika diminta untuk nama bowler terbaik mereka. Benar, itu BW Hilfenhaus. Hauritz mengungguli harapan Tiap orang, tetapi masih tidak cukup baik untuk dipilih untuk dua dari lima tes. Afrika Selatan tidak pernah menjadi pemukul dunia tanpa pemintal kelas dunia, Australia tidak bisa berharap untuk tetap satu tanpa satu satu yang cukup baik setidaknya. Magician meninggalkan panggung dan tidak terlihat seperti seni lagi, lupakan sihir. Ponting berdiri tegak di antara manusia yang lebih rendah dan Michael Clarke berdiri sangat sering, tapi yang membuat mereka tim dengan beberapa pemain sangat bagus dan bukan tim yang sangat bagus.
Abu 2009 akan diingat untuk Ashes terakhir Andrew Flintoff itu, kedatangan Stuart Broad sebagai all rounder (jika ia menambahkan cerita rakyat lagi Ashes ke awal yang menjanjikan), dan satu abad debutnya paling jelas sepanjang masa oleh Trott tetapi juga akan menjadi dikenang sebagai titik di mana ifs dan tapi-tapian tentang supremasi Australia akhirnya menempatkan untuk beristirahat, hal ini berakhir. Jangan salah sangka mereka masih bisa menggali Mike Hussey atau Stuart Clark tetapi Anda merasakan kontribusi semua hebat waktu ketika mereka pergi hilang. Kadang-kadang mereka datang untuk mengingatkan Anda tentang diri mereka dalam IPL tetapi tetap saja mereka tidak dapat diganti. Mari kita merasa diberkati karena telah terlihat Warne, McGrath dan Gilchrist bermain bersama dan didukung oleh Waughs, Ponting, Hyden, Martin dan Langer.
Ke depan, Afrika Selatan akan selalu tetap tim yang sangat bagus tetapi mereka harus memenangkan semifinal dan lebih konsisten di seluruh dunia, Pakistan akan tetap penuh teka-teki brilian, pemain muda India mungkin akan merasa sulit untuk mengisi sepatu pendahulunya luar biasa. Sri Lanka harus terus menunjukkan sekilas seni kerajinan. Tapi, kita mungkin harus menunggu untuk kadang-kadang sebelum memiliki tim semuanya dominan atau sebelum kapten mengeluh kurangnya kompetisi, seperti Steve Waugh lakukan sekali.
Pada catatan terkait - mari kita menyambut kembali kedatangan Asif, ia memiliki banyak neraka potensi, mari kita berharap untuk melihat beberapa dari itu dan juga menyambut Bunga Andy di awatar baru, kan Anda tidak dapat mengikuti orang baik turun lama.
ruby satu liners untuk membuat hash
Kemarin ketika sedang memeriksa salah satu program lama saya, saya menemukan ini ditulis oleh saya kapan kembali:
#begin magic
hash=Hash[*CGI.unescape(raw_text).split('&').map{|x| b=x.split("=");b.push(nil) if b.size==1;b}.flatten]
#end magic
Untuk membunuh beberapa ketegangan biarkan aku mengungkapkan bahwa raw_text terlihat seperti
, Kan sudah dipotong dari pengakuan pembayaran paypal.
Di atas garis jika rusak di bagian membaca lebih baik:
unescaped_array = CGI.unescape (raw_text). split ('&') unescaped_array = unescaped_array.collect {| x | = b x.split ("="); b.push (nihil) jika b.size == 1, b} flattened_array = unescaped_array.flatten hash = Hash [* flattened_array]
Mari kita lakukan langkah-langkah individu dalam irb:
irb (main):. 009:0> unescaped_array = CGI.unescape (raw_text) split ('&') => ["SUKSES", "mc_gross = 10,00", "protection_eligibility = tidak memenuhi syarat", "payer_id = U7PPJJ4TSJ47E", "pajak = 0,00", "payment_date = 09:45:30 Jul 10, 2009 PDT", "payment_status = Pending "] irb (main): 013:0> unescaped_array = unescaped_array.map {| x | = b x.split ("="); b.push (nihil) jika b.size == 1, b} => [["SUKSES", nil], ["mc_gross", "10,00"], ["protection_eligibility", "memenuhi syarat"], ["payer_id", "U7PPJJ4TSJ47E"], ["pajak", "0.00"] , ["payment_date", "09:45:30 Jul 10, 2009 PDT"], ["payment_status", "Pending"]] irb (main): 014:0> flattened_array = unescaped_array.flatten => ["SUKSES", nihil, "mc_gross", "10,00", "protection_eligibility", "memenuhi syarat", "payer_id", "U7PPJJ4TSJ47E", "pajak", "0.00", "payment_date", "09:45: 30 Jul 10, 2009 PDT "," payment_status "," Pending "] irb (main): 015:0> hash = Hash [* flattened_array] => {"Pajak" => "0.00", "payment_status" => "Pending", "payer_id" => "U7PPJJ4TSJ47E", "mc_gross" => "10,00", "SUKSES" => nil, "payment_date" = > "09:45:30 Jul 10, 2009 PDT", "protection_eligibility" => "tidak memenuhi syarat"}
BTW, * disebut operator yang percikan di ruby
Cara lain untuk membuat hash dari 'array dari pasangan adalah menggunakan inject:
hash = [[1,2], [3,4]] menyuntikkan ({}). {| hasil, elemen | hasil [element.first] = hasil [element.last], hasilnya} Ada satu cara yang lebih
Menulis satu lingkaran, bahwa Aku akan meninggalkan sebagai latihan bagi para pembaca!
Berikut adalah kasus penggunaan sedikit tidak berhubungan untuk menciptakan hash dari array:
irb (main): 005:0> [1,2,3,4,7,9] group_by {| x | x <5. : Lebih kecil lebih besar ::} => {: Lebih kecil => [1, 2, 3, 4],: lebih besar => [7, 9]}
Anda dapat melakukan lebih banyak hal, pada dasarnya hasil dari blok yang digunakan sebagai kunci untuk itu elemen dalam hash yang dihasilkan.
gmail, mutt dan msmtp memperbaiki
Jika Anda menggunakan mutt dan smtp untuk mengakses gmail. Berikut ini adalah berita (buruk). Cowok keren di Google kembali berubah sertifikat. Oh, apakah Anda bertanya - bagaimana itu mengetahuinya? Mutt sederhana mulai mengeluh tentang sertifikat yang buruk ketika mencoba menggunakan msmpt, terkenal 'msmtp: verifikasi sertifikat TLS gagal:. Sertifikat belum punya penerbit yang dikenal' menyapa saya di layar.
Untuk lintas mengkonfirmasi -
Jalankan saja mengikuti
$ msmtp --serverinfo --host=smtp.gmail.com --tls=on --port=587 --tls-certcheck=off
Di tempat Server Thwate tua sekarang Anda bisa mengikuti segmen penerbit
Issuer:
Common Name: Google Internet Authority
Organization: Google Inc
Country: US
Untungnya memperbaiki sederhana, di sini adalah apa yang perlu Anda lakukan di debian
# apt-get install ca-certificates
# dpkg -s ca-certificates|grep Version
Version: 20090814
Setelah ini hanya mengubah baris berikut dalam Anda ~ /. Msmtprc
tls_trust_file /certs/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem
tls_trust_file /certs/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem
untuk
tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt
Git dan Survei Awesome
Berikut adalah dua link untuk survei oleh git (versi sistem kontrol) dan dahsyat (window manager) masyarakat. Jika Anda menggunakan salah satu dari ini, silakan mengambil beberapa waktu untuk mengisi kuesioner. Anggap saja sebagai cara paling sederhana untuk memberikan kontribusi kembali ke perangkat lunak yang Anda gunakan.
Berikut adalah link:
Git - http://www.survs.com/survey?id=2PIMZGU0&channel=Q0EKJ3NF54
Awesome - http://www.survs.com/survey?id=8BVEV3FO&channel=BH07CQ040D
Catatan - (Seperti yang ditemukan pada halaman tersebut tapi di bagian bawah
) -
"Jika cookie telah diaktifkan, Anda selalu dapat mengirimkan survei terisi sebagian, dan kembali ke jawaban Anda di lain waktu, menyelesaikan nanti."
Penggabungan hash dalam file conf YAML
YAML adalah sangat berguna untuk menulis file konfigurasi. Keuntungan utama adalah bahwa, dibaca seperti file teks. Ini bekerja sangat baik jika file konfigurasi Anda adalah datar (hirarki tidak) dan tidak memiliki pengulangan.
Jika konfigurasi file Anda memiliki pengulangan maka masuk akal untuk memisahkan unsur-unsur dan menggunakan kembali mereka. Yang saya maksud adalah ini - katakanlah Anda file konfigurasi Anda terlihat seperti ini:
pengembangan: input_location: common_input output_location: dev_location mail: smtp_server: your_server login: your_login password: top_secret produksi: input_location: common_input output_location: dev_location mail: smtp_server: your_server login: your_login password: top_secret
Dengan asumsi di atas kode dalam / tmp / test.yml sini adalah bagaimana Anda dapat membaca di python dan ruby
$cat readyml.py
# / Usr! / Bin / env python dari pprint impor pprint sebagai pp # Di debian perlu menginstal python-YAML dari impor beban YAML, dump load_all, hash = beban (terbuka ('/ tmp / test.yml')) pp (hash ['pembangunan'])
$ cat readyml.rb
# / Usr! / Bin / env ruby require 'pp' hash = YAML :: load (File.Open ('/ tmp / test.yml'). membaca) pp hash ['pembangunan']
di sini adalah liner satu berguna untuk versi ruby
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]' atau Anda dapat mencoba hal yang sama di irb atau konsol python.
Perhatikan bahwa dalam potongan kode di atas, semuanya selain lokasi output yang sama dalam pembangunan dan bagian produksi. Di sinilah pengenal simpul yml datang untuk menyelamatkan. Ide sederhana memiliki satu set nilai default dan menimpa mereka di tempat yang berbeda.
Anda bisa tarik terpisah sebagai berikut:
default: default & input_location: common_input output_location: dev_location mail: sender_name: pengirim smtp_server: your_server login: your_login password: top_secret pengembangan: <<: * Defaults produksi: <<: * Defaults output_location: prod_location
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
"your_login"
$
Besar, ia bekerja (tm)!.
Bisa dibilang kita diperdagangkan beberapa petunjuk untuk sedikit sihir. Berikut adalah penjelasan kecil: &, * dan <<: & yang tag anchor dapat dipahami sebagai identifier node, * adalah referensi node dan <<: singkatan dari gabungan hash.
Untuk lebih lengkapnya lihat baik spesifikasi YAML atau wikipedia
Sejauh ini cukup baik tetapi ada menangkap di sini, ini gabungan hash tidak rekursif. Artinya adalah: katakanlah Anda ingin memiliki nama pengirim yang berbeda untuk mail dalam dua lingkungan, Anda mungkin tergoda untuk melakukan hal berikut:
default: default & input_location: common_input output_location: dev_location mail: sender_name: pengirim smtp_server: your_server login: your_login password: top_secret pengembangan: <<: * Defaults mail: sender_name: sender_dev produksi: <<: * Defaults output_location: prod_location mail: sender_name: sender_prod
Mari kita memeriksa
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
nil
$
Ups, ada yang tidak beres, masalah seperti yang disebutkan di atas adalah bahwa menggabungkan hash tidak rekursif dan saat menggabungkan diganti mail default dengan mail produksi yang hanya memiliki satu kunci. Solusi / bekerja di sekitar adalah untuk membuka gulungan satu tingkat lebih lanjut:
common_settings: & common_settings input_location: common_input output_location: dev_location mail_defaults: & mail_defaults sender_name: pengirim smtp_server: your_server login: your_login password: top_secret default: default & <<: * Common_settings mail: <<: * Mail_defaults pengembangan: <<: * Defaults produksi: <<: * Defaults mail: <<: * Mail_defaults sender_name: sender_prod
Mari kita cek lagi
$ ruby -rpp -e 'pp YAML::load(File.open("/tmp/a.yml"))["development"]["mail"]["login"]'
"your_login"
$
Apakah Anda mengatakan Anda memiliki tingkat satu lebih banyak bersarang, baik Anda pasti dapat membuka gulungan satu tingkat lebih, tapi kemudian menjadi berantakan. Jadi, jika Anda tidak mencoba untuk menulis solusi untuk menara hanoi dalam file conf, lebih baik untuk restucture file conf dari menggali YAML atau sesuatu yang lain. Tapi itu panggilan Anda pula.
Programmer Great find solusi sederhana untuk masalah kompleks
Setelah lama aku bisa menemukan sumber untuk mengikuti kutipan-
Programmer junior menciptakan solusi sederhana untuk masalah sederhana. Programmer senior menciptakan solusi kompleks untuk masalah kompleks. Programmer besar menemukan solusi sederhana untuk masalah yang kompleks.
Hal ini dari sebuah esai yang disebut Software Indah oleh Charles Connell.
Satu lagi favorit saya adalah The Zen Python -
Indah lebih baik dari jelek.
Eksplisit adalah lebih baik daripada implisit.
Sederhana adalah lebih baik daripada rumit.
Kompleks lebih baik daripada rumit.
Datar adalah lebih baik daripada bersarang.
Jarang lebih baik daripada padat.
Keterbacaan penting.
Kasus khusus tidak cukup khusus untuk melanggar aturan.
Meskipun kepraktisan mengalahkan kemurnian.
Kesalahan tidak pernah harus melewati diam-diam.
Kecuali secara tegas dibungkam.
Dalam menghadapi ambiguitas, menolak godaan untuk menebak.
Harus ada satu-dan sebaiknya hanya satu-jelas cara untuk melakukannya.
Meskipun cara yang mungkin tidak jelas pada awalnya kecuali Anda Belanda.
Sekarang lebih baik daripada tidak pernah.
Meskipun tidak pernah sering lebih baik daripada * kanan * sekarang.
Jika implementasi ini sulit untuk menjelaskan, itu ide yang buruk.
Jika pelaksanaannya mudah untuk menjelaskan, mungkin ide yang baik.
Ruang nama adalah salah satu membunyikan klakson ide bagus - mari kita melakukan lebih dari mereka!
-------------------------
dan kemudian ada klasik Tao Pemrograman
-
kredit seperti pada situs-terkait
Diterjemahkan oleh Geoffrey James
Ditulis oleh Duke Hillard
Ditularkan oleh Anupam Trivedi, Sajitha Tampi, dan Meghshyam Jagannath
Re-html-ized dan disunting oleh Kragen Sittler
-
Buku 1 - Void Diam
Jadi berbicara programmer master:
"Ketika Anda telah belajar untuk merebut kode kesalahan dari bingkai perangkap, itu
akan menjadi waktu bagi Anda untuk pergi. "1.1
Sesuatu yang misterius terbentuk, lahir di kekosongan diam. Menunggu sendirian dan
tak bergerak, adalah sekaligus masih namun dalam gerakan konstan. Ini adalah sumber
dari semua program. Saya tidak tahu namanya, jadi saya akan menyebutnya Tao
Pemrograman.Jika Tao yang besar, maka sistem operasi adalah besar. Jika operasi
sistem yang besar, maka compiler adalah besar. Jika compiler yang besar,
maka aplikasi yang besar. Pengguna senang dan ada ada
harmoni di dunia.The Tao of Programming mengalir jauh dan kembali pada angin pagi.
1.2
Tao melahirkan bahasa mesin. Bahasa mesin melahirkan
assembler.Assembler melahirkan compiler. Sekarang ada sepuluh ribu
bahasa.Setiap bahasa memiliki tujuan, namun rendah hati. Setiap bahasa mengungkapkan
Yin dan Yang dari perangkat lunak. Setiap bahasa memiliki tempatnya dalam Tao.Tapi jangan program di COBOL jika Anda bisa menghindarinya.
1.3
Pada mulanya adalah Tao. Tao melahirkan Ruang dan Waktu.
Oleh karena itu Ruang dan Waktu adalah Yin dan Yang dari pemrograman.Programmer yang tidak memahami Tao selalu kehabisan waktu
dan ruang untuk program mereka. Programmer yang memahami Tao selalu
memiliki cukup waktu dan ruang untuk mencapai tujuan mereka.Bagaimana mungkin sebaliknya?
1.4
Programmer bijaksana diceritakan tentang Tao dan mengikutinya. Rata-rata
programmer diceritakan tentang Tao dan pencarian untuk itu. Programmer bodoh
diceritakan tentang Tao dan menertawakan itu.Jika bukan karena tawa, tidak akan ada Tao.
Suara tertinggi adalah paling sulit untuk mendengar.
Ke depan adalah cara untuk mundur.
Bakat besar menunjukkan dirinya di akhir hidupnya.
Bahkan program yang sempurna masih memiliki bug.-------------------------
Buku 2 - Master Kuno
Jadi berbicara programmer master:
"Setelah tiga hari tanpa pemrograman, hidup menjadi berarti."
2.1
Para programer tua yang misterius dan mendalam. Kami tidak bisa membayangkan
pikiran mereka, sehingga semua yang kita lakukan adalah menggambarkan penampilan mereka.Sadar, seperti rubah melintasi air. Kirimkan sinyal, seperti umum tentang
medan perang. Jenisnya seperti nyonya rumah menyambut tamu-tamunya. Sederhana, seperti
uncarved blok dari kayu. Buram, seperti kolam hitam di gua-gua yang gelap.Siapa yang bisa mengatakan rahasia hati dan pikiran mereka?
Jawabannya hanya ada di Tao.
2.2
Grand Master Turing pernah bermimpi bahwa ia adalah sebuah mesin. Ketika ia terbangun ia
berseru:"Saya tidak tahu apakah saya Turing bermimpi bahwa saya mesin, atau
mesin bermimpi bahwa saya Turing! "2.3
Seorang programmer dari perusahaan komputer yang sangat besar pergi ke perangkat lunak
konferensi dan kemudian kembali untuk melapor ke manajernya, berkata: "macam apa
programmer bekerja untuk perusahaan lain? Mereka berperilaku buruk dan tidak
tidak peduli dengan penampilan. Rambut mereka panjang dan tidak terawat dan mereka
pakaian kusut dan tua. Mereka jatuh suite pertemuan kami dan mereka
membuat suara kasar selama presentasi saya. "Manajer berkata: "Seharusnya aku tidak pernah mengutus kamu untuk konferensi. Itu
programmer hidup di luar dunia fisik. Mereka menganggap kehidupan absurd, sebuah
kebetulan kebetulan. Mereka datang dan pergi tanpa mengetahui keterbatasan.
Tanpa perawatan, mereka hidup hanya untuk program mereka. Mengapa mereka harus repot-repot
dengan konvensi sosial?"Mereka masih hidup dalam Tao."
2.4
Seorang pemula bertanya Guru: "Berikut ini adalah programmer yang tidak pernah merancang,
dokumen atau tes program-programnya. Namun semua yang mengenalnya menganggap dia salah satu
yang terbaik programmer di dunia. Mengapa hal ini? "Master menjawab: "Itu programmer telah menguasai Tao. Dia telah pergi
di luar kebutuhan untuk desain, ia tidak menjadi marah ketika sistem
crash, tetapi menerima alam semesta tanpa keprihatinan. Dia telah melampaui
perlu untuk dokumentasi, ia tidak lagi peduli apakah ada orang lain melihat kode nya.
Dia telah melampaui kebutuhan untuk pengujian, masing-masing program Nya sempurna
dalam diri mereka, tenang dan elegan, tujuan mereka jelas. Sesungguhnya,
ia telah memasuki misteri Tao. "-------------------------
Buku 3 - Desain
Jadi berbicara programmer master:
"Ketika program ini sedang diuji, sudah terlambat untuk membuat desain
perubahan. "3.1
Suatu kali ada seorang pria yang pergi ke sebuah pameran dagang komputer. Setiap hari saat ia
masuk, pria itu mengatakan penjaga di pintu:"Saya seorang pencuri besar, terkenal karena prestasi saya mengutil. Menjadi
diperingatkan, untuk pameran dagang tidak akan terhindar unplundered. "Pidato ini terganggu penjaga sangat, karena ada jutaan
dolar dalam komputer peralatan, sehingga ia melihat orang itu hati-hati. Tapi
orang itu hanya mengembara dari stan ke stan, bersenandung pelan pada dirinya sendiri.Ketika orang itu pergi, penjaga menarik Yesus ke samping dan mencari pakaiannya, tapi
tidak ada yang ditemukan.Pada hari berikutnya dari pameran dagang, pria itu kembali dan menegur penjaga
berkata: "Aku lolos dengan jarahan besar kemarin, tetapi hari ini akan lebih
lebih baik. "Jadi penjaga melihat dia semakin dekat, tetapi tidak berhasil.Pada hari terakhir pameran dagang, penjaga bisa menahan rasa ingin tahunya
tidak lagi. "Pencuri Pak," katanya, "Saya sangat bingung, saya tidak bisa hidup di
perdamaian. Silahkan mencerahkan saya. Apa yang Anda mencuri? "Pria itu tersenyum. "Saya mencuri ide," katanya.
3.2
Suatu kali ada seorang programmer guru yang menulis program terstruktur. Sebuah
programmer pemula, berusaha untuk menirunya, juga mulai menulis
tidak terstruktur program. Ketika pemula diminta master untuk mengevaluasi nya
kemajuan, master mengkritiknya karena menulis program terstruktur,
mengatakan, "Apa yang sesuai untuk master tidak tepat untuk
pemula. Anda harus memahami Tao sebelum melampaui struktur. "3.3
Pernah ada seorang programmer yang melekat pada pengadilan panglima perang yang
Wu. Panglima perang bertanya programmer: "Mana yang lebih mudah untuk merancang: sebuah
akuntansi paket atau sistem operasi? ""Sebuah sistem operasi," jawab programmer.
Panglima perang yang diucapkan berseru tak percaya. "Sesungguhnya akuntansi
paket sepele sebelah kompleksitas sistem operasi, "ia
kata."Tidak begitu," kata programmer, "ketika merancang sebuah paket akuntansi,
programmer beroperasi sebagai mediator antara orang yang memiliki berbagai
ide: bagaimana harus beroperasi, bagaimana laporannya harus muncul, dan bagaimana harus
sesuai dengan peraturan perpajakan. Sebaliknya, sebuah sistem operasi tidak terbatas
oleh penampilan luar. Ketika merancang sebuah sistem operasi, programmer
berusaha harmoni sederhana antara mesin dan ide. Inilah sebabnya mengapa sebuah
sistem operasi lebih mudah untuk merancang. "Para panglima perang dari Wu mengangguk dan tersenyum. "Itu semua baik dan baik, tetapi
yang lebih mudah untuk debug? "Programmer tidak menjawab.
3.4
Seorang manajer pergi ke programmer master dan menunjukkan padanya persyaratan
dokumen untuk aplikasi baru. Manajer bertanya master: "Berapa lama
waktu yang dibutuhkan untuk merancang sistem ini jika saya menetapkan lima programmer untuk itu? ""Ini akan memakan waktu satu tahun," kata master segera.
"Tapi kita perlu sistem ini segera atau bahkan lebih cepat! Berapa lama itu
ambil jika saya menetapkan sepuluh programmer untuk itu? "Programmer menguasai mengerutkan kening. "Dalam hal ini, akan memakan waktu dua tahun."
"Dan bagaimana jika saya memberikan seratus programmer untuk itu?"
Programmer tuan mengangkat bahu. "Kemudian desain tidak akan pernah
selesai, "katanya.-------------------------
Buku 4 - Coding
Jadi berbicara programmer master:
"Sebuah program yang ditulis dengan baik adalah surga sendiri; program buruk-tertulis
sendiri neraka. "4.1
Sebuah program harus ringan dan gesit, subrutin yang terhubung seperti
kalung mutiara. Semangat dan tujuan program harus dipertahankan
di seluruh. Harus ada tidak terlalu sedikit atau terlalu banyak, baik
perlu loop atau variabel tidak berguna, tidak kekurangan struktur maupun
luar biasa kekakuan.Sebuah program harus mengikuti Hukum `dari Keterkejutan Terkecil. Apakah hukum ini?
Ini hanyalah bahwa program ini harus selalu merespon pengguna dalam cara
yang menakjubkan dia paling sedikit.Sebuah program, tidak peduli bagaimana kompleks, harus bertindak sebagai satu kesatuan. Program ini
harus diarahkan oleh logika dalam bukan oleh tampilan luar.Jika program gagal dalam persyaratan ini, akan dalam keadaan
gangguan dan kebingungan. Satu-satunya cara untuk memperbaiki hal ini adalah untuk menulis ulang
program.4.2
Seorang pemula bertanya master: "Saya memiliki program yang kadang-kadang berjalan dan
kadang-kadang dibatalkan. Saya telah mengikuti aturan pemrograman, namun saya
benar-benar bingung. Apa alasan untuk ini? "Sang guru menjawab: "Anda bingung karena Anda tidak mengerti Tao.
Hanya orang bodoh yang mengharapkan perilaku rasional dari manusia sesama. Mengapa Anda
harapkan dari sebuah mesin yang manusia telah dibangun? Komputer mensimulasikan
determinisme, hanya Tao yang sempurna."Aturan dari pemrograman adalah sementara; Tao hanya kekal. Oleh karena itu
Anda harus merenungkan Tao sebelum Anda menerima pencerahan. ""Tapi bagaimana aku tahu kapan saya telah menerima pencerahan?" Tanya
pemula."Program Anda kemudian akan berjalan dengan benar," jawab master.
4.3
Seorang master menjelaskan sifat Tao ke salah satu siswa-nya. "Para
Tao diwujudkan dalam semua perangkat lunak - terlepas dari bagaimana tidak signifikan, "kata
master."Apakah Tao di kalkulator genggam?" Tanya pemula.
"Ini," jawabnya.
"Apakah Tao dalam video game?" Lanjut pemula.
"Bahkan dalam video game," kata master.
"Dan adalah Tao di DOS untuk komputer pribadi?"
Master terbatuk dan bergeser posisinya sedikit. "Pelajarannya adalah lebih
hari ini, "katanya.4.4
Programmer Pangeran Wang coding perangkat lunak. Jari-jarinya menari-nari di atas
keyboard. Program dikompilasi tanpa pesan kesalahan, dan program
berlari seperti angin lembut."Excellent!" Seru Pangeran, "teknik Anda adalah sempurna!"
"Teknik?" Kata programmer berbalik dari terminal itu, "Apa yang saya
mengikuti adalah Tao - di luar semua teknik! Ketika saya pertama mulai program saya
akan melihat di depanku seluruh masalah dalam satu massa. Setelah tiga tahun saya tidak
lagi melihat massa ini. Sebaliknya, saya menggunakan subrutin. Tapi sekarang saya melihat apa-apa.
Jiwaku ada dalam kekosongan tak berbentuk. Indra saya menganggur. Saya roh,
bebas untuk bekerja tanpa rencana, mengikuti naluri sendiri. Singkatnya, program saya
menulis itu sendiri. Benar, kadang-kadang ada masalah yang sulit. Saya melihat mereka
datang, saya melambat, saya menonton diam-diam. Kemudian saya mengubah satu baris kode
dan kesulitan lenyap seperti tiupan asap menganggur. Saya kemudian mengkompilasi
program. Aku duduk diam dan membiarkan sukacita pekerjaan mengisi diri saya. Aku menutup saya
mata sejenak dan kemudian log off. "Pangeran Wang mengatakan, "Apakah bahwa semua programmer saya adalah sebagai bijaksana!"
-------------------------
Buku 5 - Pemeliharaan
Jadi berbicara programmer master:
"Meskipun program menjadi tiga namun antrean panjang, suatu hari nanti ia akan harus
dipertahankan. "5.1
Sebuah pintu baik digunakan tidak membutuhkan minyak pada engselnya.
Sebuah aliran deras mengalir tidak tumbuh stagnan.
Baik suara maupun pikiran dapat melakukan perjalanan melalui ruang hampa.
Software membusuk jika tidak digunakan.Ini adalah misteri besar.
5.2
Seorang manajer bertanya programmer berapa lama akan membawanya untuk menyelesaikan
program di mana ia bekerja. "Itu akan selesai besok," yang
programmer segera menjawab."Saya pikir Anda tidak realistis," kata manajer, "Sejujurnya, bagaimana
lama waktu yang dibutuhkan? "Programmer berpikir sejenak. "Saya memiliki beberapa fitur yang saya ingin
menambahkan. Ini akan memakan waktu setidaknya dua minggu, "katanya akhirnya."Bahkan yang terlalu banyak berharap," tegas manajer, "Saya akan
puas jika Anda hanya memberitahu saya ketika program selesai. "Programmer setuju untuk ini.
Beberapa tahun kemudian, manajer pensiun. Dalam perjalanan menuju pensiun
makan siang, dia menemukan programmer tidur di terminal-nya. Dia telah
pemrograman malam.5.3
Seorang programmer pemula pernah ditugaskan untuk kode paket keuangan sederhana.
Pemula bekerja mati-matian selama beberapa hari, tetapi ketika tuannya terakhir
programnya, ia menemukan bahwa itu berisi editor layar, satu set
umum grafis rutinitas, antarmuka kecerdasan buatan, tetapi
tidak menyebutkan apa-apa sedikit pun keuangan.Ketika master ditanya tentang hal ini, pemula menjadi marah. "Jangan
jadi tidak sabar, "katanya," Aku akan dimasukkan ke dalam hal-hal keuangan akhirnya. "5.4
Apakah petani yang baik mengabaikan tanaman yang telah ditanam?
Apakah guru yang baik mengabaikan bahkan siswa yang paling rendah hati?
Apakah seorang ayah yang baik memungkinkan anak tunggal kelaparan?
Apakah programmer yang baik menolak untuk mempertahankan kode nya?-------------------------
Buku 6 - Manajemen
Jadi berbicara programmer master:
"Biarkan programmer menjadi banyak dan sedikit manajer - maka semua akan
produktif. "6.1
Ketika manajer mengadakan pertemuan tanpa akhir, programer menulis permainan. Ketika
akuntan berbicara keuntungan kuartalan, anggaran pembangunan adalah untuk
dipotong. Ketika ilmuwan senior berbicara langit biru, awan adalah untuk roll
masukSesungguhnya, ini bukan Tao Programming.
Ketika manajer membuat komitmen, program permainan diabaikan. Ketika
akuntan membuat rencana jangka panjang, keharmonisan dan ketertiban adalah tentang menjadi
dipulihkan. Ketika ilmuwan senior mengatasi masalah di tangan,
masalah akan segera dipecahkan.Sesungguhnya, ini adalah Tao Programming.
6.2
Mengapa programmer tidak produktif?
Karena waktu mereka terbuang dalam pertemuan.Mengapa programmer memberontak?
Karena manajemen mengganggu terlalu banyak.Mengapa programmer mengundurkan diri satu per satu?
Karena mereka terbakar.Setelah bekerja untuk manajemen yang buruk, mereka tidak lagi nilai pekerjaan mereka.
6.3
Seorang manajer akan segera dipecat, tetapi seorang programmer yang bekerja padanya
invented a new program that became popular and sold well. As a result, the
manager retained his job.The manager tried to give the programmer a bonus, but the programmer
refused it, saying, “I wrote the program because I thought it was an
interesting concept, and thus I expect no reward.”The manager upon hearing this remarked, “This programmer, though he holds
a position of small esteem, understands well the proper duty of an
employee. Let us promote him to the exalted position of management
consultant!”But when told this, the programmer once more refused, saying, “I exist so
that I can program. If I were promoted, I would do nothing but waste
everyone's time. Can I go now? I have a program that I'm working on.”6.4
A manager went to his programmers and told them: “As regards to your work
hours: you are going to have to come in at nine in the morning and leave
at five in the afternoon.” At this, all of them became angry and several
resigned on the spot.So the manager said: “All right, in that case you may set your own
working hours, as long as you finish your projects on schedule.” The
programmers, now satisfied, began to come in at noon and work to the wee
hours of the morning.-------------------------
Book 7 – Corporate Wisdom
Thus spake the master programmer:
“You can demonstrate a program for a corporate executive, but you can't
make him computer literate.”7.1
A novice asked the master: “In the east there is a great tree-structure
that men call `Corporate Headquarters'. It is bloated out of shape with
vice presidents and accountants. It issues a multitude of memos, each
saying `Go, Hence!' or `Go, Hither!' and nobody knows what is meant. Every
year new names are put onto the branches, but all to no avail. How can
such an unnatural entity be?”The master replied: “You perceive this immense structure and are
disturbed that it has no rational purpose. Can you not take amusement from
its endless gyrations? Do you not enjoy the untroubled ease of programming
beneath its sheltering branches? Why are you bothered by its
uselessness?”7.2
In the east there is a shark which is larger than all other fish. Itu
changes into a bird whose wings are like clouds filling the sky. When this
bird moves across the land, it brings a message from Corporate
Headquarters. This message it drops into the midst of the programmers,
like a seagull making its mark upon the beach. Then the bird mounts on the
wind and, with the blue sky at its back, returns home.The novice programmer stares in wonder at the bird, for he understands it
tidak. The average programmer dreads the coming of the bird, for he fears
its message. The master programmer continues to work at his terminal, for
he does not know that the bird has come and gone.7.3
The Magician of the Ivory Tower brought his latest invention for the
master programmer to examine. The magician wheeled a large black box into
the master's office while the master waited in silence.“This is an integrated, distributed, general-purpose workstation,” began
the magician, “ergonomically designed with a proprietary operating
system, sixth generation languages, and multiple state of the art user
interfaces. It took my assistants several hundred man years to construct.
Is it not amazing?”The master raised his eyebrows slightly. “It is indeed amazing,” he
said.“Corporate Headquarters has commanded,” continued the magician, “that
everyone use this workstation as a platform for new programs. Do you agree
to this?”“Certainly,” replied the master, “I will have it transported to the
data center immediately!” And the magician returned to his tower, well
pleased.Several days later, a novice wandered into the office of the master
programmer and said, “I cannot find the listing for my new program. Melakukan
you know where it might be?”“Yes,” replied the master, “the listings are stacked on the platform in
the data center.”7.4
The master programmer moves from program to program without fear. Tidak
change in management can harm him. He will not be fired, even if the
project is cancelled. Mengapa hal ini? He is filled with Tao.-------------------------
Book 8 – Hardware and Software
Thus spake the master programmer:
“Without the wind, the grass does not move. Without software, hardware is
useless.”8.1
A novice asked the master: “I perceive that one computer company is much
larger than all others. It towers above its competition like a giant among
dwarfs. Any one of its divisions could comprise an entire business. Mengapa
this so?”The master replied, “Why do you ask such foolish questions? That company
is large because it is large. If it only made hardware, nobody would buy
itu. If it only made software, nobody would use it. If it only maintained
systems, people would treat it like a servant. But because it combines all
of these things, people think it one of the gods! By not seeking to
strive, it conquers without effort.”8.2
A master programmer passed a novice programmer one day. The master noted
the novice's preoccupation with a hand-held computer game. “Excuse me,”
he said, “may I examine it?”The novice bolted to attention and handed the device to the master. "Saya
see that the device claims to have three levels of play: Easy, Medium, and
Hard,” said the master. “Yet every such device has another level of
play, where the device seeks not to conquer the human, nor to be conquered
by the human.”“Pray, great master,” implored the novice, “how does one find this
mysterious setting?”The master dropped the device to the ground and crushed it underfoot. Dan
suddenly the novice was enlightened.8.3
There was once a programmer who worked upon microprocessors. “Look at how
well off I am here,” he said to a mainframe programmer who came to visit,
“I have my own operating system and file storage device. I do not have to
share my resources with anyone. The software is self- consistent and
easy-to-use. Why do you not quit your present job and join me here?”The mainframe programmer then began to describe his system to his friend,
saying “The mainframe sits like an ancient sage meditating in the midst
of the data center. Its disk drives lie end-to-end like a great ocean of
machinery. The software is as multifaceted as a diamond, and as convoluted
as a primeval jungle. The programs, each unique, move through the system
like a swift-flowing river. That is why I am happy where I am.”The microcomputer programmer, upon hearing this, fell silent. But the two
programmers remained friends until the end of their days.8.4
Hardware met Software on the road to Changtse. Software said: “You are
Yin and I am Yang. If we travel together we will become famous and earn
vast sums of money.” And so the set forth together, thinking to conquer
dunia.Presently they met Firmware, who was dressed in tattered rags and hobbled
along propped on a thorny stick. Firmware said to them: “The Tao lies
beyond Yin and Yang. It is silent and still as a pool of water. Itu
not seek fame, therefore nobody knows its presence. It does not seek
fortune, for it is complete within itself. It exists beyond space and
time.”Software and Hardware, ashamed, returned to their homes.
-------------------------
Book 9 – Epilogue
Thus spake the master programmer:
“It is time for you to leave.”
-------------------------
If you liked these, you may also like to read worse is better
A bit of shell redirection
Here is how we normally do shell redirection
$ ./pgm.sh args >out.txt 2>err.txt
I wanted to modify it a bit and run as follows
$ ./pgm.sh args
with the requirement that output and error should go to some filename computed inside pgm.sh based on args. One illustrative case could be when date is part of args. So you would like stdout to go to say /your/directory/pgm_out_YYYYMMDD.txt 1
The problem with standard way of redirecting N>file.txt ie, associating file descriptor N to file.txt , is that it works only for the newly forked process and not for the current process.
jadi
$ echo hi 1>out.txt ; echo hii will send hi to out.txt but will print hii to stdout. 2
This is where exec comes to our rescue. If we add exec 1>somefile.txt then output from rest of the script will go to somefile.txt
$./test.sh will redirect hi as well as hii to out.txt
$ cat test.sh
#!/usr/bin/env bash
exec 1>out.txt
echo hi
echo hii
Similarly to redirect stdout as well as stderr we'll do something like this
cat test2.sh
exec 1>out.txt
exec 2>err.txt
echo out text
echo 1>&2 err text
somenoneexitent command
ls -ld /tmp
Now coming back to original point of redirecting to some file from inside the shell, let's say program computed the filename in some variable OUTFILE, we could have just done exec 1>$OUTFILE
That solves the current problem. But you may like to go through following example which achieves 'random access' of file in shell script. Example is from here
echo 1234567890 > File # Write string to "File".
exec 3<> File # Open "File" and assign fd 3 to it.
read -n 4 <&3 # Read only 4 characters.
echo -n . >&3 # Write a decimal point there.
exec 3>&- # Close fd 3.
cat File # ==> 1234.67890
With comments, this code is self explanatory.
-
1 It can also be done by $ ./pgm.sh args >pgm_out`date +%Y%m%d` but idea is to generate this file name based on some logic in program itself.
2 1 in 1>out.txt is redundant but it clarifies here that we are redirecting fd 1
Sony VAIO review
A month back I bought a vaio NS25G and have been planning to write this post since then. This post is primarily notes to self and review of the same. Let's get off the mark quickly -
Post has two parts -
I. Review of hardware
II. Installing debian and things to setup
Since I am not a VAIO marketing guy, I'll start other way round -
Why you may not like to buy this laptop :
- No bluetooth : believe me, in 2009 sony sells laptop without bluetooth. Sure you can use usb stuff but …
- Screen size is 15.4 inches : if you travel a lot then this laptop may not be very handy and also 2.9kg laptop is not exactly the lightest around.
- No HDMI output.
- No separate graphics card and the likes.(and no dedicated video memory
Now , why you may like to buy it :
- This laptop is a damn good desktop. What I mean is this if your requirement is like me – mostly writing programs and trying to use it 25 out of 24 hrs, then with a big screen , extremely comfortable keyboard layout with spacious palm rest and good compute power , it makes a very good combination.
- It L2 cache is 2MB and processor/memory system bus are 800MHz. I don't play games so can't say about that but for anything else but a core 2 duo processor with 2GHz freq is good, this is more than enough.
- From my usage, I see processor mostly clocks at 1.2GHz, and memory usage ~500MB. That just reinforces previous point.
- Battery backup is good, ~2 hrs is what I get.
Just one more thing here – being Sony, it will cost you a bit than other laptops with similar configuration, but that is a call u have to make.
II. Configuring linux (to run out of box ! ) :
It came pre installed with Vista( I think home premium or some fancy name like that). Dungara booted once and created another partition of 150 GB. Debian testing is what I always install and then up(down?)grade to 'unstable' sid.
Things which worked without any problem:
- X - unsurprisingly X server had not problem with starting or resolution. After one of the upgrades X refused to start though, but 'X -configure' generated a conf file which worked pretty well.
- Audio - Audio output and external mic work fine. kernel version 2.6.29-1-686 #1 SMP and alsa version 1.0.17. This is what you get from
$ lspci -v |grep Audio 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Con1.0.17troller (rev 03) - Video cam – just works
- Hibernate to disk and back – no problem
- Wireless - in short – just works.
$ lspci |grep -i wireless
03:13:55 04:00.0 Network controller: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) (rev 01) .
I think kernel 2.6..27 onwards it works with the stock kernel source. You dont have to install ndiswrapper or things like t
hat. As a note, please say good buy gnome-network-manager and welcome wicd, it is just a gui layer but behind the scene they have fixed lot of config stuff like wpasupplient and more.
What doesn't work -
- Somehow internal mic refuses to work
External mic works fine though. Latest alsa sources did not compile cleanly on debian, so for the time being I bought external Internal mic, will try to dig into it sometime in future though.
Few more misc hints for deiban:
- Package for devnagri font- ttf-indic-fonts
- Package for flash player – flashplugin-nonfree
- Entry in sources.list for mplayer and likes – deb http://www.debian-multimedia.org sid main
- Entry in sources.list for e17 – deb http://debian.alphagemini.org/ unstable main
- Entry in sources.list for skype – http://download.skype.com/linux/repos/debian/ stable non-free
oneliner for increasing and decreasing the brightness -
[root]prashant@vaio09:12 PM$ cat bin/incbrightness.sh
#!/usr/bin/env bash
echo $[1+`cat /sys/class/backlight/acpi_video0/brightness `] >/sys/class/backlight/acpi_video0/brightness
you'll have to put this in sudo though.
and to decrease change + to – and … you get the idea, right !
A bit more, if you use enlightenment(e17) here are few more hints -
[enlightenment key bindidings]
You can use following key code and mapping
mute :
KEY="Keycode-160" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master toggle"
hibernate :
KEY="Keycode-165" ACTION="exec" PARAMS="sudo /usr/sbin/hibernate-disk"
volume decrease :
KEY="Keycode-174" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master 2-"
volume increase:
KEY="Keycode-176" ACTION="exec" PARAMS="/usr/bin/amixer -q set Master 2+"
increase brightness :
KEY="Keycode-212" ACTION="exec" PARAMS="sudo /root/bin/incbrightness.sh"
decrease brightness
KEY="Keycode-101" ACTION="exec" PARAMS="sudo /root/bin/decbrightness.sh"



































