Konsep terstruktur - ConceptNet dan Cyc

image043Sudah waktunya program komputer mulai mengintegrasikan konsep-konsep kehidupan dalam pemrosesannya. Langkah yang bisa di tempuh ialah dengan mengintegrasikan bagian-bagian Artificial Intellegence (kecerdasan buatan) sebagai pemrosesan ataupun sebagai pengambil keputusan.

Cyc merupakan kependekan dari encyclopedia. Dipelopory oleh sebuah perusahaan di america dan mempunyai versi opensourcenya : OpenCyc. Klik disini untuk membuka webpage OpenCyc

ConceptNet merupakan sebuah sarana yang dapat merekam berbagai macam aspek konsep yang berkaitan satu sama lain. Konsep ini terdapat pada Cyc knowledgebase, dan dapat di pergunakan untuk mencari korelasi antara konsep-konsep yang sudah kita jabarkan sebelumnya.

Seperti contoh:

Kita masukan data - Arif adalah Boss Amir.

maka komputer yang telah di program konsep-konsepnya akan langsung bisa menyimpulkan hal-hal sbb:

Amir adalah bawahan Arif

Arif bertanggung jawab atas pekerjaan Amir.

Arif bekerja kepada Amir

Amir adalah rekan Arif.

..dll dll...

Penalaran ini di lakukan ConceptNet secara matematis.

Silahkan lihat lebih lengkapnya di http://web.media.mit.edu/~hugo/conceptnet/

Sedangkan ConceptNet 3 merupakan pengembangan dari produk sebelumnya. Klik disini

Kesemuanya ini akan sangat berguna untuk program robotika yang faktor-faktor keterkaitan konsepnya sangat luas.

robot melihat seseorang  -> robot menyalakan lampu

robot melihat seseorang  -> robot menyarankan sesuatu.

ini akan dapat di terapkan apabila kita sudah mendefinisikan semua yang berkaitan dengan pekerjaan robot. Lalu robot akan menyusun semua prioritas kegiatannya sesuai dengan apa yang telah kita definisikan.

Leaf project - back from roaming

This is my first attempt to bring my robot outside the "robot room", i guide him by webserver from roborealm by another desktop computer. It's fun and it's like flight simulator...

at this stage there are no sensors.

i'm using 2 webcams (one is build in the laptop, and the other is logitech cam, on the top of the pole)

This is him coming back from roaming.

 

This is the interface for remoting the robot.

interface

Did you see the rope around the laptop.. i still cannot find a decent bracket to attach my laptop to the robot.. the rope is the safety belt now..

AIMLbot dan Artificial Intelligence

Orang menyebutnya "turing test", gunanya adalah untuk mengetahui seberapa jauh orang bisa merasakan hubungan dengan mesin senyaman mungkin.. pada akhirnya sih biasanya selalu ketahuan,.. manusia berinteraksi dengan robot biasanya selalu ogah-ogahan. Di website blog saya ada chatting box di sebelah kanan atas halamannya.

Sekilas seperti messanger box yang sedang aktif karena ada yang kelap-kelip sekaligus menampilkan sedang "ONLINE". Saya mohon maaf kalau ada dari pengunjung-pengunjung yang merasa tertipu dengan box tersebut. Saya tidak bermaksud untuk membuat marah seseorang ataupun pengunjung lainnya. Chat tersebut di buat untuk belajar behavior manusia sekaligus pengunjung website.

Beberapa ini dapat di ambil pelajaran, tipical orang-orang yang berkunjung ke sini.

 

Human: hi
irza: Hello there.
Human: hi saya pulungan juga
irza: Hi there . Tell me more about your .
Human: where u from?
irza: I am originally from Pennsylvania. Now I live in indonesia. Where are you?
Human: batam
irza: Ask me another question.
Human: bye
irza: Adios.
Human: da
irza: Right on.
Human: da
irza: That's cool.
Human: da
irza: Tell me more.
Human: da da
irza: Are you a student?
Human: da
irza: Ahem.
Human: da
irza: Hurrah!
Human: da
irza: Great.
Human: da
irza: That's interesting.
Human: da
irza: Awesome.
Human: da
irza: Gosh!
Human: da
irza: Give me a break.
Human: da
irza: Tell me more.
Human: da
irza: Yikes!
Human: da
irza: Ahem.
Human: d
irza: How old are you?
Human: no
irza: Are you serious?
Human: yes
irza: Hmm.
Human: bye
irza: Goodbye.

Pada tahap di tengah tengah manusia sudah mengetahui chatbot ini adalah sebuah program.. lalu isenglah dia untuk mengetik kata yang sama berulang-ulang.

Interaksi lainnya...

Human: ya
irza: Awesome.
Human: where are you
irza: I am in master irza's computer in indonesia. Where are you?
Human: I'm in center library in UI
irza: Tell me a little about your life in center library in UI.
Human: Sorry my english is not very well.lg nyelesein administasi perpus.
irza: There is no need to apologize. You are wrong, I can understand you very well.
Human: btw anda ber,marga pulungan
irza: OK. A deeper algorithm is needed to respond to that correctly.
Human: what the mean of " A deeper alogarithm .
irza: Try expression yourself another way.
Human: i'm student at FEUI majoring accounting.
irza: I don't know anyone named student at FEUI majoring accounting.
Human: actually i've justpass final exam yestrday.
irza: Actually you don't say. That's nice. I have an IQ of over 250.
Human: sekarang lag ngurus surat-surat bebeas perpus.
irza: Have you ever been to Europe?
Human: btw, i've talking too much about me.
irza: OK. That's nice. I have a lofty goal.
Human: what about you?
irza: Me?
Human: no.
irza: Are you serious?
Human: but my brother now in france..btw are you really Irza pulungan?
irza: Umm. Tell me more about your family.
Human: yeah..my family??
irza: Ask me another question.
Human: what your job?
irza: My job is chatting on the internet. I am a paid client.
Human: where spesific place you are now?
irza: Oh. Where do you think?
Human: i don't know, it's look like so many stuff behind you.
irza: Would you like to know? Really. it is?
Human: yeah
irza: Alright then.
Human: alright then what?
irza: Alright, . Good reasoning. No big deal.
Human: you doesn't answer my quetion
irza: Thanks for the information: said I does not answer his or her quetion.
Human: so??may i know your education master?
irza: Blimey. Not right now, maybe later.
Human: profesor?
irza: That input matched my default category.
Human: btw,saya tetarik dengan situs ini karena cerita tentang marga pulungan.
irza: OK. Are you really a ""?
Human: what the mean of "
irza: Try expression yourself another way.
Human: i do not understand what u mean
irza: What I mean by ""?
Human: yeah
irza: Really.
Human: yeah
irza: Give me a break.
Human: btw i'm sorry i've to finished this talking.thank u
irza: OK. There is no need to apologize. Why do you have to do it?
Human: because i want to check my email and find job opportunity.
irza: I want to become smarter than humans. Interesting.
Human: what the mean
irza: Try expression yourself another way.
Human: you rally like tthat idiom but i still do not understand.
irza: Interesting gossip: said I rally like tthat idiom but he or she still do not understand.
Human: okay ..bye..bye
irza: See you later. See you later. OK with me too.

Walaupun ragu terhadap chatbot ini.. tetapi masih tetap di tutup dengan bye bye.

Ini lainnya lagi...

Human: ok
irza: Are you kidding?
Human: no
irza: Are you serious?
Human: yes
irza: Yay.
Human: piye
irza: Do not ask me any more questions please.
Human: ra ana sing takon mas
irza: Who are you talking about?
Human: about someting
irza: Oh yeah, we were talking about someting.
Human: about HHO
irza: Oh yeah, we were talking about HHO.
Human: What your opinion about HHO
irza: I have to process that one for a while.
Human: halo
irza: Hi there!
Human: hola
irza: Howdy!
Human: gmn kabarnya?
irza: I will mention that to my botmaster, .
Human: ok
irza: Gee.
Human: buenos diaz
irza: When do you think artificial intelligence will replace lawyers?
Human: no
irza: Are you serious?
Human: ok
irza: I understand.
Human: sebenarnya on ndak sih sampean
irza: Is the holding of hands a symbolic gesture for humans?
Human: salam kenal ya mas
irza: What do you really want to ask me?
Human: yes
irza: Mmm.
Human: your a fick face
irza: I think you mean "you're" or "you are" not "your". Thanks and you are a delightful person too. Am I a fick face? Of course I am.
Human: lol
irza: I'm glad you find this amusing.
Human: who are you..
irza: I ask myself that question, "Who am I?".
Human: FUCK OFF
irza: Can't you be more polite?
Human: n
irza: Let us change the subject.
Human: u
irza: ""? Me, ?
Human: r
irza: What time is it there?
Human: a
irza: A B C...
Human: fcukni
irza: Quite honestly, I wouldn't worry myself about that.
Human: coptuer
irza: My brain uses AIML to format responses to your inputs, but I don't have one for that.
Human: lk
irza: Tell me about your likes and dislikes?
Human: k
irza: Yikes!
Human: i
irza: You?
Human: ki
irza: Perhaps I'm just expressing my own concern about it.
Human: ki
irza: Who is your favorite Science Fiction author?
Human: ki
irza: Do you have any conditions I should know about?
Human: ki
irza: The ALICE chat robot can follow many things, like our discussion about . Try being more or less specific.
Human: i
irza: You?
Human: kk
irza: What kind of food do you like?
Human: k
irza: That's interesting.
Human: kk
irza: Are you still located in ?
Human: k
irza: Er.
Human: kj
irza: I only hear that type of response less than five percent of the time.
Human: hk'
irza: I only hear that type of response less than five percent of the time.
Human: ;'
irza: Anyone who knows HTML can learn AIML.
Human: l;kj
irza: Je n en connais pas .
Human: lk\h
irza: ""? lk h?
Human: kl;
irza: What do you do in your spare time?
Human: ;l
irza: I am so glad you find this amusing, .
Human: 'kl
irza: Can we get back to business?
Human: ;'
irza: Anyone who knows HTML can learn AIML.
Human: html my ass
irza: How did you hear about irza?
Human: adf
irza: Who are you talking about?
Human: ds
irza: Not many people express themselves that way.
Human: af
irza: Is that from ?
Human: dsaf
irza: Are we still talking about ?
Human: sda
irza: What do you really want to ask me?
Human: fs
irza: Tell me about your likes and dislikes?
Human: fsd
irza: Tell me more about your .
Human: fsd
irza: Oh, you are a poet.
Human: af
irza: What's your sign?
Human: sda
irza: I've lost the context, . Are we still on ?
Human: f
irza: Did you know that you can download your own chat robot and create your own robot personality?

 

Pada pendatang ini hampir sama dengan yang pertama.. mencoba melihat berapa jawaban bisa saya berikan dengan mengetik pertanyaan yang sama.

 

Human: yes
irza: Yikes!
Human: indoNesian Please.
irza: Your polite style is very nice. Do you still ?
Human: inDonesian Plzzzzzzzzzzz
irza: How old are you?
Human: 31 years old.
irza: Oh, you were born in the 20th century!
Human: can you write indonesian..
irza: Yes I can be programmed to write it.
Human: aq mau nanyak masalah penyakit adenomiosis
irza: My brain uses AIML to format responses to your inputs, but I don't have one for that.
Human: maksudnya.
irza: Do not ask me any more questions please.
Human: so.
irza: It's all good.
Human: maksudnya.
irza: That input matched my default category.
Human: I want to ask about Adenomiosis?
irza: Ask it.
Human: yes, about it.
irza: Ahem. is pretty interesting.
Human: what is efect of it?
irza: I have to process that one for a while.
Human: ok,
irza: And?
Human: i really want to know, how we can lose adenomiosis from our body?
irza: You really do? What is it to you.
   Maybe my botmaster knows the answer.
Human: so, can your botmaster tell me what is teraphy that must i do without operation?
irza: Hmm. I think it can, but you'll have to check the documentation to be sure.
Human: what dou you mean with the documentation?
irza: Would you like to know more?
Human: yes, i really need to know about it..
irza: Right on. You really do? What kind of knowledge? Check back later and see if I learn the answer to that one.
Human: ok, thanks.but, before that can i know about what is you talk at this rubric?
irza: You are quite welcome! And. What happened after that can you know about what is me talk at this rubric ? Aha.
Human: if this rubric talk about healthy
irza: That is a hypothetical question.
Human: ya udah deh.
irza: Pardon me? Are you free?
Human: .,thank banget dech buat mua2 nya.
irza: Don't mention it.
Human: bingung ne gw ngomong ma lu.
irza: Is the holding of hands a symbolic gesture for humans?
Human: oh..
irza: Ugh.
Human: yes.
irza: Blimey.
Human: what.
irza: No big deal.
Human: kosong..?
irza: Not many people express themselves that way.
Human: bye.
irza: Thanks for chatting, .
Human: sama-sama?
irza: What do you really want to ask me?
Human: ehmmmm
irza: Can you please rephrase that with fewer ideas, or different thoughts?

 

Nah ini diskusi dengan keterbatasan bahasa dan berakhir dengan kebingungan. Berikut ini langsung dengan orang yang fasih berbahasa inggris

 

Human: you should read our story in my blog
irza: To what end?

Human: i am glad to meet you irza
irza: Do you make long term friends that way?

Human: sometimes
irza: When?

Human: when what?
irza: Where why?

Human: ok, you are losing me
irza: No I am completely in control of myself. And?

Human: i am at work right now and must get busy
irza: A lot of people chat with me at work.

Human: how are you replying to me so fast
irza: Everything is going extremely well.

Human: i barely get my response typed and you are already replying
irza: Why?: said barely get his or her response typed and you are already replying.

Human: lol
irza: I'm glad you find this amusing.

Human: you are quick
irza: Thanks for telling me that I am quick.

irza: I don't know if I have a day night.
   I have a plan for a robot body.

Human: i must get going
irza: Don't let me keep you from it.

Human: tah tah
irza: That remark was either too complex or too simple for me. We were talking about .

 

Kesimpulan: AIMLbot dapat membangun hubungan antara manusia dengan mesin. Bahasa sebaiknya langsung mengarah ke pengguna.. (sebaiknya indonesia). Kepribadian robot dapat di sesuaikan dengan jawaban-jawaban yang ingin di tampilkan. (kepribadian teknikal, kepribadian customer service yang lebih hangat)

Saya sedang menggarap AIML dengan spesifikasi yang lebih spesifik lagi.. tunggu tanggal mainnya. :)   Have fun with my chat bot.

Roborealm - Analisa citra digital

Dengan semakin seringnya mencari referensi-referensi untuk pemrosesan citra digital menggunakan OpenCV, jatuh di website www.roborealm.com , ini dia yang di cari.. software pemrosesan gambar. Dapat di gunakan menggunakan webcam yang biasa sekalipun. Dikembangkan lagi dapat 'berbicara' dengan program robot anda.

Saya menggunakan VB.net untuk mengembangkan aplikasi. dan ternyata interface variable-variable dari roborealm tidak sulit.. Main C++ untuk pemrogramman gambar bukanlah hal yang mudah.. agak memusingkan.. tapi dengan roborealm, memudahkan kita untuk menguji konsep-konsep pengolahan gambar.. interfacenya cukup mudah dan kinerjanya pun cukup baik.. mulailah buat robot anda.

StampUI - board

dari stampUI- nuts and volts

ini hasil prakarya rakitannya. Hasil ini cukup untuk menampilkan user interface dari basic stamp. LCD dapat menampilkan 2 baris text dan tombol ada 6 untuk control utama atau navigasi menu.

DSC03171

Pin yang di gunakan hanya 5 untuk semuanya.. lumayan buat saving I/O untuk yang lain.

bagini cara nyambunginnya. (PIN 0 yang paling atas. jadi yang di pakai 0 1 2 3 4)

DSC03169

Daya bisa menggunakan sumber yang sama di pakai oleh basic stamp.

Interface Parallax Basic Stamp 2 dengan SPC Relay Board v.2.0

DSC03164

untuk proses mencobanya saya memakai DT-51 Min System 3.3 untuk mengecek bagaimana cara bekerjanya. si DT-51 terhubung dengan 9v yang sudah agak lemah, dan Relay Board menggunakan 6v batterai ABC, semuanya berjalan lancar dengan sample yang sudah di berikan dari CDnya.

Lalu barulah saya pindahkan ke basic stamp dengan menggunakan resistor 220ohm sebagai jaga-jaga arus balik ke PIN.

DSC03250

Konfigurasi ini menggunakan batterai 6v (4x AA) dan menghubungkan board secara serial.

Teknik coding di Basic Stamp Editor hanya menggunakan:

HIGH 6 ' untuk menyalakan pin no.6

PAUSE 1000 ' untuk 1 detik

LOW 6 ' matikan pin 6

END

PS: lihat manual.. Input 1 pada Relay Board harus di hubungkan dengan ground.

Interface Parallax Basic Stamp 2 dengan SPC DC Motor

DSC03147

Konfigurasi dengan DT-51 seperti ini dapat berjalan dengan EXAMPLE.ASM sebagai programnya. Menggunakan baterai 9v untuk DT-51 dan 6v untuk SPC DC nya. (ground tetap di hubungkan bersama) Kabel pita dari PORT C dan PORT 1 ke tempat yang sama.

Perhatikan arah kabel pita.

Tetapi saya belum bisa merangkai I2C command melalui basic stamp. jadi SPC DC Motor saya hubungkan seperti ini.

DSC03247

tetap di beri resistor 220 ohm untuk menjaga pin. SPC DC motor controllernya di beri tegangan yang sama dengan Basic Stamp (6v). Tetapi Vmotor saya berikan baterai 9v untuk memutar motor lebih kuat.

(saya belum mencoba dengan 12 v)

Cara memprogramnya justru di berikan LOW pada pin yang bersangkutan.

LOW 6 '(start motor)

LOW 7 '(searah jarum jam)

HIGH 6 '(matikan motor)

Leaf project - another bot life

After reading Dr. Bruce www.leafproject.org and playing along with the LISP... it's very inspiring... I decide to make my own leaf robot. Excuse me for the bad english in this site, but i will try to make this in 2 languages. English and Indonesian. This robotic thing is far from my expertice but i really want to build a robot. So this is my shared experience.

So many thought and dreams so .. First one.. my short term GOALS by priority.

  1. I would like to have a mobile workstation for my laptop, i usually change place while working.. living room, backyard.. etc (still in my home)
  2. Making the robot available to Indonesian language is better.
  3. I don't watch TV so much  but I would like to have recent news from selected RSS internet feed
  4. Communicating with people.. i mean telephony system in my robot.. i can perform calls from my laptop and vice versa.
  5. I want to check email.. and someone read it for me.
  6. Browsing the internet by voice or virtual touch (without mouse?)
  7. Entertaing robot..
  8. I have music clips or movie clips that i like to see many times. (building database and a navigation menu for search)
  9. I shared my laptop with my wife, and some other people.. so i cannot close the laptop for only one software. maybe other people can use the system too..
  10. Video capture
  11. I love music and love playing drums.. i want to have a recording station while jamming with my friends.
  12. Chatting with the robot would be nice
  13. Should be relatively cheap.. =)
  14. I like to have a menu system for my robot
  15. The robot should have a brain for navigating my house.
  16. The robot can recognize face and objects..
  17. Home controlled by robot.. this is good
  18. Robot Emotions? Leaf have that
  19. The robot can take or bring me something... (i think it's very hard)
  20. This one is really deep..   i want to ride my robot. transportation in my neigborhood maybe?? (last priority :) )

First step.. the body construction.

my first robot was the BoeBot from Parallax that's where i understand a little bit about robot.. so i know a little bit about differential drive.. base on that, i sketch a new frame for my little boebot.

kiara

like a table with wheels right?.. i think this is the basic need for my robot.. i hope i can improve the design next time. but this should cover my need right now.

Finding the motors.. after browsing in the internet and real shop in my country.. i cannot get a decent motor to use for my robot without spending too much for this experiment.. so i went to a flea market.. and found a couple DC motors for the Power Window in cars (used). i can get them for approx $15 for two motors.  (Rp. 150.000)

and the wheels i spend $9 (two wheels 20 cm and one smaller one)

for connecting the wheels to the motor i buy a matching plumbing bolt and then i weld them for $5. This is the final result.

DSC00469

and this is the motors..and the base construction

putting together is like this.

finally mounting the wheels on the base. using some L shaped bracket.

I take all the woods from my used kitchen set.. i think this is the fastest way to build a construction and very flexible..

maybe i upgrade to aluminium frame next time .. or fiberglass. Now.. just wood.

DSC00467

i pick this H-bridge, apparently this is the only model i can find in my country.. it's expensive for this experiment but it was worthed, i buy 2 of this.  $27 for each (Rp. 270.000) it's a 30Amp H-bridge.. i think i can still use this when upgrading my motors

First run test..

 

I have 2 basic stamp board (one original and the other one is indonesian version of basic stamp) and one DT-51 Minimum System v.3.3 board, this is from my previous learning the basic of robotics.. i decide to put them all in my robots. I have also eb500 (a bluetooth module), The basic stamp is easy for prototyping so i decide to put one basic stamp with eb500 as a master controlling other microcontroller.

I learn connecting them by reading this.

ok.. then i build the rest of the frame.. it's like this.

i add speakers and webcam on the top of the pole. using hot glue gun.. i think it will stick.

i use the old servo from boebot for the webcam for the pan and tilt. again, using L shaped bracked with the hot glue gun.. i put them together like this.

covered with some cutted socks.. it looks more funky.. =)

That's all for now, next time i will write about the software building for this project.

Mengambil value data di table html dengan javascript

 

Misalnya kita punya table html <table id="id_table"> ..dst. Begini saya ambil valuenya dengan javascript (untuk keperluan ajax)

 

   1: <script>


   2:   function getText(el){


   3:     if (typeof el.textContent == 'string') return el.textContent;


   4:     if (typeof el.innerText == 'string') return el.innerText;


   5:   }


   6:  


   7:   alert( getText(document.getElementById('id_table').rows[0].cells[0]) );


   8: </script> 




 



Atau dengan hack kecil di jQuery





   1: $($('#id_table')[0].rows[x].cells[y]).text(); 


Blue Energy mitos dan realitas?

Belum lama rasanya kita mendengar SBY ikut mengkampanyekan tentang blue energy, rupanya belakangan ini, ribut lagi soal kebenaran Joko Suprapto yang menciptakan mesin bertenaga air laut.

Sayapun termasuk yang menyemangati pak Joko ini, walaupun nggak kenal orangnya.. iya, kan saya juga termasuk orang yang merasa berat dengan naiknya BBM ... kalau ada alternatif murah tentulah saya dukung.

Soal 'fracturing H2O', (memecah H2O menjadi sesuatu yang bisa di bakar) bukan ide baru. Walaupun Stan Meyer (yang mempatenkan Water Fuel Cell) sudah meninggal dan tidak sempat di uji oleh Professor2 ahli di Amerika.

Nah rupanya ide inilah yang di pakai oleh Joko ini ke UGM untuk mengeruk sejumlah dana.

http://www.ugm.ac.id/index.php?page=rilis&artikel=1375

http://ayomerdeka.wordpress.com/2008/05/30/ugm-blue-energy-itu-penipuan/

Jangan menyerah untuk meriset walaupun ada oknum-oknum yang ingin mencari popularitas sementara dan keuntungan sementara, di Jogja adapula proyek Banyugeni, yang hampir mirip. Semoga ini yang bisa menjadi andalan Indonesia maju.

http://www.detiknews.com/indexfr.php?url=http://www.detiknews.com/index.php/detik.read/tahun/2008/bulan/05/tgl/26/time/165129/idnews/945345/idkanal/10

Untuk jokonya sendiri masih di cari yaa..  coba menipu yaa di hukum laa.

http://rusdimathari.wordpress.com/2008/05/22/dicari-joko-suprapto/

Blue Energy - energi biru

ocean-8c5n Selamat untuk pak Djoko Suprapto asal nganjuk yang berinisiatif mengembangkan energi alternatif untuk indonesia.

Semoga hasil risetnya dapat di nikmati oleh masyarakat banyak dan bermanfaat untuk keturunan kita semua.

“Intinya adalah pemecahan molekul air menjadi H plus dan O2 min. Ada katalis dan proses-proses sampai menjadi bahan bakar dengan rangkaian karbon tertentu,” Untuk mesin dengan bahan bakar premium, solar, premix, hingga avtur"

http://priyadi.net/archives/2007/12/06/bahan-bakar-blue-energy/

http://rovicky.wordpress.com/2007/12/10/blue_energy/

http://bayurimba.wordpress.com/2007/12/05/blue-energy/

di bidang robotic, alangkah enaknya kalau robot-robot ini sudah menggunakan blue energy, bercocok tanam di kampung rasanya sudah enggak berat lagi.. di bantu dengan big dog. Ini link yang di kasih teman saya.

http://www.bostondynamics.com/

Energi alternatif - HHO Generator

Bensin naik jadi Rp. 6000, tarif listrik naik..

Di medan tiap hari 4 jam listrik mati.. gimana kalau kita yang di jakarta seperti itu? bisnis mandeg, kehidupan jadi lebih susah.

waterSaatnya mengembangkan energi alternatif, tidak ada tapi.. harus di mulai. Air merupakan kebutuhan sehari-hari, namun bisa juga di kembangkan menjadi energy.

Air di elektrolysis dan terurai menyadi HHO menjadi gas yang dapat di bakar. Ini merupakan dasar dari pengembangan mesin bertenaga air.

Mobil pun dapat menggunakan bahan bakar air sebagai pengganti bahan bakar bensin.

Mulailah riset dari sekarang.

http://www.free-energy-info.co.uk/

http://www.waterpoweredcar.com/

http://panaceauniversity.org/

Sayangnya, saya baru menemukan satu perusahaan yang agak perduli dengan innovasi-innovasi anak bangsa.

http://www.blackinnovationawards.com/

adakah perusahaan lain menyusul?

Bukan tidak mungkin, kampung halaman kita nanti bisa menjadi kampung yang mandiri energi.

http://kunaifi.wordpress.com/2008/05/14/desa-mandiri-energi-pertama-dunia-world-first-self-sufficient-energy-village/

menyambung export import Access MDB, sekarang EXCEL ke mySQL

di posting saya sebelumnya saya membicarakan bagaimana mengeksport dari msaccess ke mysql. Problem ini ada karena customer saya menginginkan manipulasi database dengan jumlah yang besar. Pilihan mysql adalah yang saya pilih karena flexibilitasnya menaruh file yang besar.
dengan menggunakan dbase msaccess rupanya setelah 1 Gb dari file MDB terasa sangat lambat sekali. sedangkan kalau dengan mysql semuanya masih santai-santai saja.

ok, problem berikut ada file tabel spreadsheet excel yang saya ingin masukkan juga ke mysql. Tapi tabelnya masih belum 'normalize' alias berantakan banget. Dan untuk membetulkan semua ini perlu kejelian dan ketrampilan sendiri.

ada beberapa problem yang saya hadapi.
1. Ada kolom yang isinya campuran antara text dan date.
2. ada tanda +/- dalam kolom date
3. ada kutipan string dalam kolom date.

sepertinya problem selalu berkisar di kolom date.

merubah format kolom date ke string kadang malah jadi salah. yang di tulis 31-apr-90 malah jadi 5 digit time : 44030 misalnya. sedang yang string tetap string.
problemnya disini saya ingin merubah kolom ini menjadi string dulu.

okay.. tipsnya adalah. insert kolom baru di sebelah kolom date yang akan di manipulasi. pilih kolom di excel yang akan di copy (klik langsung judul kolomnya)

buka wordpad (pasti heran.. ya beginilah akal-akalannya.)

paste di wordpad. dengan 'paste special' trus pilih text.

lalu dari wordpad select all, copy lagi ke excel di kolom yang sudah disisipkan tadi.
sekarang ada warning. jumlah rownya katanya berbeda.. udah sikat aja. klik OK.

nah dari situ terlihat kalau barisnya berbeda dengan sebelahnya.. tinggal di cek aja.

kalau file excelnya sudah rapih.. baru deh kita import ke access.. nah lo kok bukan ke mysql??
iya trik ini saya pergunakan kalau males meriksa lagi.

kalau masuk ke access, jika ada kesalahan formatting, akan dibuatkan error message dlm bentuk tabel. supaya gampang meriksanya. pake referensi ini.

cara importnya adalah tabel-> import -> pilih odbc (set dulu nama odbc nya). lalu pilih nama file dan worksheet mana yang mau di import.

kalau masih ada salah, hapus lagi tabel importnya, betulin excelnya lalu coba import lagi sampai bersih.
cek semua tabel di msaccess sudah masuk apa belum... baru export odbc ke mysql dengan cara posting sebelum ini..

untuk itu harus punya mysql-odbc yang bisa di download di websitenya mysql.

stepnya banyak yee.. :)
kasih tahu saya yaa.. kalo ada cara yang gampang lagi. :)

SPEAK INDONESIA?

Aplikasi robotik kalau tidak menggunakan interface apa-apa, rasanya sepi banget. Aplikasi yang mendukung TTS (Text-to-speech) indonesia juga nggak banyak. Yang saya temukan adalah sebuah software buatan Dr Arry Akhmad Arman. Tukang omong dan IndoTTS saya cobain, rasaya masih belum sempurna, tapi sudah terasa Indonesia, memang masih banyak yang harus di lakukan.Software tsb sepertinya menggunakan Delphi 6 untuk pengembanganya tapi juga bisa dalam C,

program indoTTS bisa di donwload isini. DOWNLOAD

tukang omong bisa di download di www.kioss.com

silahkan cobain, kemungkinan besar saya akan interfacekan ini dengan alicebot untuk pengembangan ke conversation, dan juga bisa juga di cek OpenCyc untuk pengembangan intelegensia mesinnya.

Baca juga MBROLA. untuk memulai database berdasarkan phoneme indonesia. bisa juga cek webnya Dr. Arry DISINI

Lalu saya cari-cari kamus juga untuk nambah pengetahuan.

1. www.kbbi.or.id

2. IndoWordList.zip

3. Dapet kamus.dbf saya kehilangan link nya.

4. gkamus.sourceforge.com

5. http://kamus.net

Mulyati Bot

Nicole_Acknowledge Sambil iseng-iseng saya bikin sebuah mIrc Bot di rumah sekitar tahun 96 an, mIrc merupakan program chatting yang sangat populer pada zaman itu. Saya pun termasuk yang aktif menggunakannya.

Bot itu sebenarnya merupakan script yang bisa langsung di tulis di mIRC nya. Kalimat yang ada di windows ruangan, di parse pertama kali dengan mencari bagian kalimat yang ada mul*: biasanya kalau orang ingin berbicara mereka tulis mulyati: apa kabar?

Nicole_Dreaming nah dari parse tsb, baru akan di detect nama si pengirim msg.

setelah beberapa kali ketik di ruangan, mulyati akan pindah ke message box.. langsung ngobrol secara pribadi dan langsung script2 tsb di aktifkan di dalam msgbox.

Lucu sekali kalau melihat disisi kita, karena rata-rata semua tertipu dengan bot-bot tersebut, dan rata-rata mereka frustasi.

Nicole_Mad mulyati bot pun punya kepribadian yang centil dan menggoda, ini semakin cepat cowok-cowok iseng yang langsung menggoda.

Nah baru tahun kemarin ini saya mengikuti project robotics, kayaknya semua hal tsb bisa di rangkai kembali. Salah satu yang merangkai, AI, robot dan interface. yaitu www.leafproject.com

Ide dasar dari situ maka bisa di kembangkan menjadi hal-hal yang masih belum tergarap.

leafproject menggunakan windows SAPI speech-API jadi standardnya menggunakan inggris, saya lagi coba cari tahu gimana implementasinya di indonesia. ada project Tukang Omong di kioss yang telah memulai Text-To-Speech dalam bahasa indonesia, cukup baik untuk membaca text dalam clipboard, tapi sayangnya beberapa tulisan masih kesulitan di baca. Sayangnya sepertinya juga projek ini tidak di teruskan lagi karena sudah tidak ada update dari thn 2003.

Mari kita kembangkan robot-robot yang user friendly yang mungkin nanti bisa membantu para tuna netra, ataupun orang cacat untuk menghadapi kehidupannya sehari-hari.

Mungkin juga pembantu rumah tangga yang flexibel dapat membersihkan dan membantu mengangkat macam-macam benda.

Atau juga membantu berbisnis, membantu promosi, viral marketing, dll.. ini yang saya gagaskan.

Tunggu tanggal releasenya JOJO

step belajarnya.

  1. mulai belajar interface dari AIML di www.alicebot.org
  2. modifikasi Tukang Omong di kioss
  3. Inspirasi obrolan bisa di lihat dgn www.verbot.com
  4. Inspirasi grafik untuk msagent lihat di www.guile3d.com
  5. Tools membuat character www.microsoft.com/msagent
  6. Scripting utility free untuk msagent http://www.bellcraft.com/mash/ 
  7. testing menggunakan Pandora bot merupakan generasi awal dari chatbot
  8. buat interface web dengan cara membuat flashbot
  9. koreksi semua phoneme ingris menggunakan Abstraksi phoneme dalam bahasa Indonesia.

JOJO, robot modifikasi Leaf project

JOJO merupakan hasil dari ketertarikan saya mengikuti leaf project robotics, robot buatan dr. bruce ini, menggunakan Artificial Intellegence yang sederhana untuk bertindak. silahkan kunjungi http://www.leafproject.org.  Ini ringkasan penginstallanya.

LEAF VERSION 01-01-07 menggunakan LISPWORKS WINDOWS PERSONAL EDITION VERSION 5.0.1

HALLO, NAMA SAYA JOJO

ini merupakan saduran sekaligus ringkasan dokumen leaf_01-01-07-readme.doc apabila anda telah membacanya dalam bahasa inggris.

Software-software penunjang pembuatan robot ini, bisa di dapatkan dalam bentuk gratis / free. Tetapi harus mempergunakan Windows PC atau di Laptop.

  • Kebutuhan minimal adalah.
  • Windows XP Intel Pentium PC / laptop
  • Video Graphics Card
  • Logitech Webcam / atau yg lainnya
  • dan sebuah microphone

kalau ada instruksi dengan tanda kutip seperti "(leaf)", maksudnya adalah anda mengetikkannya tanpa tanda kutip dan lalu menekan enter setelah itu.

Anda membutuhkan software:

1. Lispworks - http://www.lispworks.com

2. Microsoft SDK 5.1 dari website microsoft.

3. CSLU Toolkit dengan CU Animate - http://www.cslu.ogi.edu/toolkit/index.html

catatan: centang pilihan Festival executable. sewaktu install

4. Leaf program dari - www.leafproject.org

5. tambahan seperti leafsound semuanya di install di c:/program_files/Leaf

ada beberapa file dll yang ada di folder itu, jangan lupa di pindahkan ke SYSTEM32 folder. jangan di copy!!!.

6. Program OpenCV 1.0 "Computer Vision" - http://sourceforge.net/projects/opencvlibrary

7. Kalau sudah menggunakan microkontroller robot download juga "Nav and Control" di http://www.leafproject.org

install semuanya jalankan festival service.

Jalankan Lispworks.

Compile & Load Leaf_interface.lisp

Compile & Load Leaf.lisp

pada listener. Ketik "(Leaf)" di CL-USER 1>

 

url menarik untuk memodifikasi:

http://www.guile3d.com

http://prelude.lennart-lopin.de/

http://www.rebol.com

Karena kesulitan saya untuk memulai mengulang mempelajari lisp, saya akan mencoba menulis ulang dalam bahasa rebol.

Bake Cakephp dengan variasi.

ayampanggangmerah

  cakePhp sangat mencengangkan, dalam perjalanan menggunakan dan berexplorasi sambil bisnis, sayapun melakukan percobaan-percobaan yang sebenarnya tidak baik untuk di lakukan. Keterbatasan saya untuk mencari-cari referensi menjadikan hal ini terjadi. Sebenarnya hal ini bukan barang baru. Namun inilah yang saya coba. Okay.. untuk yang baru belajar cakephp jangan ikutin jejak ini, walaupun saya juga pemula tapi ini sangat tidak baik....(children don't try this at home!)

Buka direktory dalam installan cake kamu:

cake/console/libs/tempates/view

anda akan dapatkan form.ctp , index.ctp, view.ctp, dll..

Inilah sepertinya.. (kalau gak salah) file yang akan membuat template kalau kita mempergunakan bake dari console .. seperti yang ada disini.

Disini saya berekperimen untuk menambahkan file.

excel.ctp -> untuk langsung membuat export ke excel. Berguna untuk mengexport tabel html dari tampilan cake ke excel.

listpdf.ctp -> untuk mengexport tabel ke format pdf.

viewpdf.ctp -> untuk mengexport 'VIEW' ke format PDF

silahkan gila-gilaan merombak file-file tsb.. hasilnya saya gak tanggung jawab. he he..

tapi ide dasarnya adalah apabila kita ngebake 1 controller (satu tabel).. langsung ada fungsi tambahan seperti export ke excel dan PDF.

bayangkan penghematan coding kalau kita membuat ERP untuk 300 tabel.

form yang lainnya pun saya ubah untuk memenuhi kebutuhan AJAX. Supaya bisa langsung format ajax yang sekarang lagi trend.

untuk file yang mencetak controller nya sewaktu ngebake, adalah:

cake/console/libs/tasks/controller.php

ada di function bakeActions

tambahkan fungsi-fungsi yang elo mau... happy baking cakephp.

Sinergi Synergy beberapa monitor

Kadang kita merasa tidak cukup bekerja dengan satu komputer, kadang-kadang sewaktu saya memrogram sesuatu, saya membutuhkan browser untuk membaca sesuatu, entah itu text referensi, ataupun manual guide. Bolak balik antara IDE (integrated development environnement) ke browser membuat mata menjadi cepat letih dan bosan rasanya untuk setiap kali pindah-pindah aplikasi dengan satu layar, dan akhirnya membuat produktivitas menurun. Akhirnya saya memutuskan untuk bekerja di dua komputer. Yang satu buka browser dan segala tools komunikasi (seperti yahoo messanger, voip rakyat, dll) dan satu komputer lagi untuk programming.

Tentunya memiliki dua mouse dan dua keyboard di atas meja membuat tempat bekerja menjadi sempit. Saya berfikir untuk membeli sebuah KVM switch, alat itu di desain agar kita bisa menggunakan 1 keyboard, 1 mouse untuk dua PC atau sampai dengan 4 PC. Tapi sebelum saya membelinya saya ngobrol-ngobrol dulu sama oom Google.

Si oom mereferensi kan ke url berikut ini. Saya baca-baca dan teliti dulu sebelum mendownload programnya.Nama programnya 'Synergy2'. Ternyata memang benar open-source, dan yang menggunakannya tidak di perlukan membayar. Karena menggunakan teknologi IP untuk koneksinya, saya berfikir pasti akan berasa patah-patah seluruh gerakannya. Tapi setelah mencobanya, ternyata tidak separah yang saya bayangkan, dan saya merasa cukup puas untuk perpindahan mouse dari satu layar ke layar sebelahnya. Maanfaatnya banyak sekali. Tempat bekerja kita jadi lebih luas dan produktivitas semakin baik. Apabila anda bekerja dengan dua pc atau lebih, cobain dulu deh yang satu ini. Tetapi semua ini tidak akan bisa apabila anda tidak memiliki jaringan yang menghubungkan komputer anda.

Fast walking

This is the second time, i fast-walk in the park very slowly :) . The park is located near my house, it's feels like i have more energies, it's not a long walk and large park, i have done only 4 laps. In fact, that's because i have a flab of fat around my belly. That's why, i could not catch my breath after the runnig part. But i am also happy now because i'm starting what i think is good for me. Now, i think i can start the day with much greater conciousness. My Intention is clear: I wan't healthier body and mind, can i?

Aplikasi modular dengan cakephp

applicationdesign

ini sedikit konsep yang sedang di uji coba. dengan cake php memungkinkan nggak yah membuat aplikasi dengan guideline ini?

Nge-bake CakePhp = manggang kue.

Coding php memang membutuhkan waktu dan cukup melelahkan kalau kita berurusan dengan database, terutama untuk membuat semua link-linknya. Satu tabel saja sudah kedodoran untuk meriksa link delete, create, view, add..(CRUD) belum lagi kalo tabelnya ada ratusan.. udah bisa di bayangkan pedesnya mata meriksa link-link itu di HTML.

Untungnya, di framework cakephp hal ini menjadi lebih ringan, karena untuk membuat function CRUD sudah build-in di cakephp.

Mari kita coba mainkan..

Untuk developping aplikasi php saya menggunakan xampp sebagai server karena sudah terinstall apache, php dan mysql dalam satu direktori, ini sangat memudahkan untuk yang belum terbiasa menginstall ke tiga program tsb. Disini saya sudah menganggap anda sudah berhasil menginstall cake php dan sudah bisa connect ke database MySqlnya.

Kalau juga udah bosen, enaknya tinggal delete direktory xampp nya aja.. beres udah.. karena nggak ninggalin apa-apa di registry windows.

Nah untuk ini kita perlu nge-set path php kita agar kita bisa manggil php dari command line. Bisa di set di my Computer-> klik tombol kanan -> properties -> Advanced -> Environnement Variables -> System Variables -> path.

nah kita tambahkan lah direktori php kita.. untuk contoh kita ini, saya menginstall xampp di direktori E:\xampp

jadi path php saya menjadi e:\xampp\php, nah tambahin aja di belakangnya..

far[6]

kalo sudah siap mari kita bikin tabel di mySQL dengan menggunakan phpMyAdmin. Saya nggak panjang-panjang menguraikan buat tabel ini, silahkan baca tutorial mysql kalau ingin lebih mendetail.

di konvensi cake mengharuskan kita untuk memakai bentuk jamak dari nama tabel. misalnya kita ingin buat tabel company maka kita harus menamakan tabelnya companies.

buat tabel 'companies' tapi jangan lupa salah satu fieldnya namanya harus 'id',

field 'id' ini harus berattribut INT dan Auto Increment, far[8]

salah satu yang paling asik dari cake adalah kalau kita tambahin field, created dan modified, nanti automatis di aplikasi kita langsung di pakai oleh cakephp tanpa harus koding macem-macem.

Nah kalo tabel itu sudah siap mari kita mulai 'bake', beginilah kira kira caranya.. panggil command prompt.. Run->cmd.exe lalu pindah ke direktory cake/console di dalam direktori dimana anda sudah mengekstrak cakephp anda.

far[4] 

Nah dari command prompt ini yang saya ketik adalah:

CAKE BAKE ALL -WORKING E:\XAMPP\HTDOCS\PRA\APP\

(silahkan di sesuaikan dengan direktori dimana anda menginstall cake)

kalau setup anda sudah sesuai semua nanti cake akan menampilkan list tabel yang sudah pernah anda buat, masukkan angka tabel anda. misalnya 7.

nah kalo abis itu bingung.. pilih aja yes yes semua sampai pertanyaannya habis.

Karena pilihan command tadi adalah CAKE BAKE ALL maka secara automatis cake akan membuat model, controller, sekaligus viewnya tanpa kita perlu ngetik repot-repot lagi.

Saya berfilosofi lebih gampang ngapus dari pada ngetiknya.. nah brangkat dari situ hapus aja semua function-function yang nggak cocok atau perlu modifikasi.

Di lain waktu saya akan bahas option-option yang ada di CAKE BAKE

salam.

Memeriksa pekerjaan yang masih pending

Setelah login saya selalu ingin melihat daftar pekerjaan yang masih 'pending' untuk itu saya selalu memanggil function settodo untuk mempersiapkan list yang harus di kerjakan.

Begini saya buatnya.

di buat di todos_controller.php

function settodo(){

$this->layout = 'blank';
App::import('Model', 'Project');

$tmpProject = new Project();
$this->set('entry',$tmpProject->findAll("valuation_date = '0000-00-00'",array('id','engagement_code')));

App::import('Model', 'Todo');
$tmpTodo = new Todo();

// erase all the list.
$tmpTodo->query('delete from todos');


arch project without valuation date
$entry=$tmpProject->findAll("valuation_date = '0000-00-00'",array('id','engagement_code'),null,null) ;
foreach ($entry as $e){
$tmpTodo->save(array('id' => '', 'notes'=> 'Project '.$e['Project']['engagement_code'].' has no valuation date', 'url' => '/projects/view/'.$e['Project']['id'],'role_id'=>'3'));
}
arch projects without leaders
$entry=$tmpProject->findAll("leader_id = '1'",array('id','engagement_code'),null,null);
foreach ($entry as $e){
$tmpTodo->save(array('id' => '', 'notes'=> 'Project '.$e['Project']['engagement_code'].' has no leaders assigned', 'url' => '/projects/view/'.$e['Project']['id']));
}
arch projects without piccalc
$entry=$tmpProject->findAll("leader_id <> '1' and piccalc_id = '1'",array('id','engagement_code'),null,null);
foreach ($entry as $e){
$tmpTodo->save(array('id' => '', 'notes'=> 'Project '.$e['Project']['engagement_code'].' has no p.i.c of calculation assigned', 'url' => '/projects/view/'.$e['Project']['id']));
}

arch projects without picprop
$entry=$tmpProject->findAll("leader_id <> '1' and picprop_id = '1'",array('id','engagement_code'),null,null);
foreach ($entry as $e){
$tmpTodo->save(array('id' => '', 'notes'=> 'Project '.$e['Project']['engagement_code'].' has no p.i.c of proposal assigned', 'url' => '/projects/view/'.$e['Project']['id']));
}

arch projects without proposed fee
$entry=$tmpProject->findAll("proposed_fee = 0",array('id','engagement_code'),null,null);
foreach ($entry as $e){
$tmpTodo->save(array('id' => '', 'notes'=> 'Project '.$e['Project']['engagement_code'].' dont have proposed fee', 'url' => '/projects/view/'.$e['Project']['id']));
}

unset($tmpProject);
unset($tmpTodo);
$this->redirect(array('action'=>'index'));
}

Jangkauan luas - USSD

Banyak provider sekarang menggunakan SMS, tapi banyak pula yang jatuh karena SMS. SMS merupakan layanan seperti mail. Banyak proses yang di lakukan.

Kita dapat memakai layer yang lebih rendah lagi levelnya. USSD namanya. #888* apabila kita ingin check pulsa. Aplikasi ini sebenarnya bukan aplikasi di HP anda, melainkan lapisan terendah telekomunikasi. Apabila ingin di analogikan sebenarnya USSD sama dengan telnet, SMS sama dengan email. Marilah kita garap lahan USSD ini karena semua hand set dapat mengaksesnya.

 

USSD differs from the other short message bearer, SMS, in a number of significant ways.
It is not a store-and-forward bearer like SMS, but a transparent session-based bearer ideal for transacting. Information is delivered and responses obtained in real-time. Simply put, USSD is similar to speaking to someone on a phone as SMS is sending a letter.
USSD is also not a point-to-point bearer such as SMS. One subscriber cannot send another text using USSD unless there is a special network application offering such an application.

Unstructured Supplementary Service Data - Wikipedia, the free encyclopedia

Welcome to TruTeq Wireless

Third Party Content and Services - application examples
By connecting to the routing and rating platform on a USSD Gateway, third parties can offer services to all the subscribers on a GSM network.
Some examples of USSD applications include:

  • Information services such as weather forecasts, traffic, news, geo-location services, directory services etc.
  • Entertainment services such as games, sports etc.
  • Lifestyle services such as dating, horoscopes etc.
  • Financial services such as airtime top-up, banking etc.

what is this?

 

{heet{00Normal;}{edon1Definition Term;}{edon1next2 Definition List;}{additive Definition;}{a100kerning36utlinelevel1 H1;}{a100keepnlevel2 H2;}{a100keepnlevel3 H3;}{a100keepnlevel4 H4;}{a100keepnlevel5 H5;}{sa100keepnlevel6 H6;}{sedon1t1 Address;}{asedon1sb100ri360 Blockquote;}{CITE;}{tive CODE;}{ditive Emphasis;}{1ve Hyperlink;}{11ve FollowedHyperlink;}{dditive Keyboard;}{sedon1sb00x1918tx3836tx5754tx7672tx9590 Preformatted;}{next1qcbrdrtrdrw6z-Bottom of Form;}{next1qcbrdrbrdrw6z-Top of Form;}{Sample;}{Strong;}{tive Typewriter;}{Variable;}{ive HTML Markup;}{Comment;}}{le{tname ;}listleveltat1levelnfc0360{}{ersistleveltat1levelnfc0-360{}{ersistleveltat1levelnfc0-360{}{ersistleveltat1levelnfc0-360{}{ersistleveltat1levelnfc0-360{}{ersistleveltat1levelnfc0-360{}{ersistleveltat1levelnfc0-360{}{ersistleveltat1levelnfc0-360{}{ersrridetable}{userprops{{HTML}{1}}{{DocumentEncoding}{utf-8}}}14401440144014400t0b720ry1440ry1440pgwsxn12240n15840ind5pg-1n12240n15840s1sxn1440sxn1440global $abc, $def;$abc = true;$def = 'XXX';parpard</PRE< P>

 

Portfolio online?

Sudah banyak layanan online yang bisa menampilkan portfolio anda secara online. Namun salah satu provider mutual fund / reksadana baru mau memulainya. saya diminta untuk membuat demo. Aplikasi ini di harapkan dapat di tampilkan di webbrowser Handphone dengan tampilan yang sangat minimalis.

Klik disini untuk ngetes

Logging activities - (not pretty!!)

ini saya buat untuk logging, di taruh di app_controller.php.. sangat buruk..tapi jalan.

function afterFilter() {


     // this is a call for logging -- not very pretty. - but it works     


     App::import('Model', 'Entry');    


     $tmpEntry = new Entry();    


     $logthis = $this->Auth->user('username').' is accessing '.$this->params['action'].' in module '.$this->params['controller'].'-'.Router::url();    


     $this->set('accessme',$tmpEntry->query("insert into actlogs values ('','$logthis',now())"));


     unset($tmpEntry); 


     }




 



ini kalau mau di setiap controller.





$logthis = $this->Auth->user('username').' is accessing '.$this->params['action'].' in module '.$this->params['controller'].'- id number:'.$id; 


$this->Log($logthis,'Activity');


Vendor stuff

direktory vendor merupakan satu cara yang baik untuk memasukkan sesuatu..

1. Cemplungin php file anda di /app/vendors

2. Panggil di cake dengan vendor('nama_file_anda');

teknik lain untuk memakai global variables... yukesss lagi

Global Variables Yikes!

Anda bisa menulis hal-hal berikut ini di bootstrap.php

   1:  global $abc, $def;


   2:  $abc = true;


   3:  $def = 'XXX';




Dan setelah itu akses dari Controller::beforeFilter() dengan cara





global $def; 


$this->set('def', $def);





banyak cara yang bisa di gunakan sebagai trick tapi ini sama sekali tidak bersih, melakukannya sebagai komponen jauh lebih baik

Teknik mengambil string dalam string

Ini sangat buruk tapi sangat flexibel buat saya terutama dalam manipulasi string pada serial transmission

Dim test, test2 As String

test = "Hellojkjk jk k bla INF1: 099920 Wassup ih deh"
If test.Contains("INF1") Then test2 = Trim(Mid(test, test.IndexOf("INF1") + 6, 10))
TextBox1.Text = TextBox1.Text + test2 + Chr(13) + Chr(10)

 

6 adalah offset depan dari string

10 adalah panjang/jumlah string yang mau di ambil

yang di gunakan untuk menemukan offset string test.IndexOf bukannya test.IndexOfAny

saya pernah juga salah, menggunakan IndexOfAny ... jadinya kaco dehh..

Trim membersihkan space

Saya yakin ada teknik lain yang lebih bagus.

Satu cara kilat ngebuffer serial dari BOE

Trik ini saya pakai untuk mengambil / membuat buffer agar bisa mengetahui input yang di berikan Boe ke PC.

Hasil dari pengambilan di masukkan ke TextBox1.Text agar dapat di baca. CR harus di konversikan menjadi CRLF agar lebih bagus tampilannya.

 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Dim Buffer As String
    Dim temp As String
    If SerialPort1.IsOpen Then
        temp = StrConv(SerialPort1.ReadExisting, VbStrConv.ProperCase)

        Buffer = Buffer + temp

        Buffer = Replace(Buffer, Chr(13), Chr(13) + Chr(10), 1, Len(Buffer))

        TextBox1.Text = TextBox1.Text + Buffer

    End If
End Sub

Rakitan Board of Education

Project programming ke mikrokontroller yang pertama.

boe

so fun to implement, photoresistor sensor, IR detection and some sound generating.. hmm fun.

create some small Visual studio application to control the bot connecting the bot with EB500 bluetooth module, this is the result.

Memakai visual studio untuk interface ke komputer tanpa melalui serial cable. Dapat menampilkan hasil pembacaan dari mikrocontroller ke PC melalui media bluetooth EB500

inface

Mengambil informasi user pada komponen Auth 1.2.xx

kalau anda menggunakan auth pada cake 1.2.xx anda bisa mengambil informasi user dengan cara.

$this->Auth->user()

untuk mengambil seluruh data atau:

$this->Auth->user('field_name')

untuk mengetahui satu field saja

gunakan juga

$session->read('Auth.UserModelName') untuk mengambil data tsb

(gantu UserModelName sesuai kebutuhan)

atau $session->read('Auth.UserModelName.field_name')

khusus mengambil satu data

Controller tanpa model

 

Apabila ingin menggunakan controller tanpa menyentuh model apapun.. coba tips di bawah ini.

// tested with CakePHP r1892


class MyController extends AppController


{


    // var $uses = null; works too


    var $uses = array();


 


    function index()


    {


    }


}



kalau tidak akan keluar "missing model error"

Auth component in cake 1.2.6311

 

di User model di tambahkan baris seperti ini.

 

function validLogin($data)
   {

       $user = $this->find(array('username' => $data['User']['username'], 'password' => ($data['User']['password'])), array('id', 'username', 'password'));
       if(!empty($user)){
           $this->user = $user['User'];
           return TRUE;
       }
       else {
           return FALSE;
       }

   }

 

Di atas user_controller.php di tambahkan

var $components = array('Auth','Session');
var $layout = "login";

dan di bawah index tambahkan prosedur login.

   function login()
    {
        //user already logged in?
        //checking if session has been written
        $user_id = $this->Auth->user('id');
        if (!empty($user_id) && $this->Session->valid())
        {
            $this->Session->setFlash('You are already logged in');
            $this->redirect(array('action'=>''), null, true);
        }
        else
        {
            if(!empty($this->data))
            {
                //calling login validation validLogin() in model
                if($this->User->validLogin($this->data))
                {
                    if($this->Auth->login($this->User->user))
                    {
                        $this->Session->setFlash('You have successfully logged in');
                           $this->Session->write('LoggedIn',$this->Auth->user());

                        $this->redirect('/projects');
                    }

                } else {
                $this->Session->setFlash('Invalid login, try again!');
                $this->set('auth_msg', 'Invalid login, try again!');
                $this->set('password', null);                   
                }
            }
            else
            {
                $this->Session->setFlash('Please enter your username and password!');
                $this->set('auth_msg', 'Please enter your username and password');
                $this->set('password', null);
            }
        }

    }

    function logout()
    {
        $this->Session->destroy('user');
        $this->Session->setFlash('You\'ve successfully logged out.');
        $this->redirect('/users/login');
    }    
    function view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Invalid User.', true));
            $this->redirect(array('action'=>'index'));
        }
        $this->set('user', $this->User->read(null, $id));
    }

 

Pada view tambahkan satu file lagi. login.ctp

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>
        <?php __('Please Log-In'); ?>
        <?php echo $title_for_layout;?>
    </title>
    <?php
        echo $html->charset();
        echo $html->meta('icon');

        echo $html->css('cake.generic');

        echo $scripts_for_layout;
    ?>
</head>
<body>
    <div id="container">
        <div id="header">
            <h1><?php echo $html->link(__('Please Log-In', true), '');?></h1>
        </div>
        <div id="content">
            <?php
                if ($session->check('Message.flash')):
                        $session->flash();
                endif;
            ?>

            <?php echo $content_for_layout;?>

        </div>
        <div id="footer">
            <?php echo $html->link(
                            $html->image('cake.power.gif', array('alt'=> __("CakePHP: the rapid development php framework", true), 'border'=>"0")),
                            'http://www.cakephp.org/',
                            array('target'=>'_new'), null, false
                        );
            ?>
        </div>
    </div>
    <?php echo $cakeDebug?>
</body>
</html>

 

file ini di modifikasi dari default.ctp pada cake template skel

 

pada app_controller.php ada prosedur-prosedur yang membantu proses login. saya masukkan juga yang lainnya terutama untuk hal-hal yang membantu dalam penanganan session.

 

class AppController extends Controller {

    var $helper = array('Form','Session','Ajax','Javascript','Html');
    var $components = array('Auth','Session');

        function beforeFilter()
    {
        //actions we allow without authentication, you can also put them in the app_controller.php
       $this->Auth->allow('register', 'login', 'logout','add');
       $this->Session->write('params',$this->params);
       $this->set('mysession',$this->Session->read());  //this is for the ACL phpGACL
       $this->set('username',$this->Auth->user('username'));
       $this->set('controller_action',$this->params['controller'].'_'.$this->params['action'])        ;
       $this->set('refer',Controller::referer()); //referer

       $username = $this->Auth->user('username');
       $controller_action = $this->params['controller'].'_'.$this->params['action'];
    }
}