Pages

Sunday, November 27, 2011

Using Alias Select Statement as Where Clause

Sengaja menggunakan judul bahasa Inggris, karena menurut saya lebih mudah dicerna.
Intinya adalah "Bagaimana menggunakan Alias yang terdapat pada Select statement untuk Where clause"

Misal:
Select concat(FirstName, LastName) as FullName
from Employees
where FullName = 'Im Yoona'

Query diatas akan menimbulkan error, karena WHERE adalah T-SQL, WHERE clause selalu dieksekusi terlebih dahulu sebelum SELECT statement, sehingga alias FullName tidak akan terdefinisikan oleh WHERE clause.
Jika anda belum tahu/lupa dengan cara kerja garis besar query pada sql (untuk SELECT statement), bisa dilihat pada artikel :
How Select Statement Works

Ingat: pada SQL Server fungsi concat belum tentu ada, biasanya diganti dengan '+' (tanpa petik).
Hal tersebut mudah saja untuk diselesaikan, yaitu dengan menaruh formula concat(FirstName, LastName) = 'Im Yoona' pada WHERE clause.
Tetapi bagaimana jika formulanya kompleks seperti :
case when ctr.slrid =
 (select mbrcompany from CTRBOOK where ctrbook.CTRBOOKID = ctr.CTRBOOKID)
 then (select mbrshortname from jcmbr jc where MBRID = ctr.byrid)
 else (select mbrshortname from jcmbr jc where MBRID = ctr.slrid) end as 'counterparty'



Ada 2 cara:
1. Dengan melakukan aliasing table pada formula:

SELECT FullName
FROM  (
select concat(FirstName, LastName) as FullName
from Employees
) as sub
WHERE sub.FullName = 'Im Yoona'

2. Membuat View

CREATE VIEW dbo.EmployeesConcat
AS
    SELECT
        concat(FirstName,LastName) as FullName
        FROM Employees


-- maka sql statementnya menjadi lebih singkat
 
SELECT
    FullName
    FROM EmployeesConcat
    WHERE FullName = 'Im Yoona'


Untuk cara lainnya mungkin ada tapi belum dicari lagi, dan kiranya bisa kasih masukkan jika ada :)


Jika ada salah, mohon koreksinya :) Maksud hati hanya mao sharing yang saya tau kok :D

Sunday, November 20, 2011

Abbreviation & Terminology (1)

CMOS = Complementary Metal Oxide Semiconductor
Biasanya teknologi ini digunakan pada perangkat IC.
BIOS = Basic Input Output System
adalah suatu embedded system yang mengatur input output dari software ke hardware. Software yang dimaksud dalam hal ini adalah embedded system.
Bootloader = Adalah suatu package yg berisi kode-kode untuk mengeksekusi / meload Operating System software dalam sebuah device, PC/komputer, mesin, dll.
Kernel = Adalah jembatan antara software (Operating System) dengan hardware. Kernel mengatur proses manajemen memori, I/O dan alokasi proses.


Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Saturday, October 22, 2011

How To Use Power Forms JD Edwards EnterpriseOne

Okay.
Recently, I have been developed application using Power Form in JD Edwards EnterpriseOne.
Maybe you are a JD Edwards developer and try to create customize forms using "Power Form". Then, this is a good article to start knowing about that (although you can read from manual in Oracle site but can be a little confusing :p )

I assume you have the basic JD Edwards Technical Skills and knowledge in creating form (such as Headerless and Header Detail form) before you read this.


In my opinion the advantages (pro) and cons if using power form:


The pros:

  1. You can add several irrelated data (different Business View) grid with Subform while other forms can't.
  2. You can also add different object application (Pxxxx object form / reuseable form) in this Power Form with Subform alias.
  3. User don't need to go from link to link to browse or edit related data/table.
The cons:
  1. This form could be slower than the other forms (headerless or header detail), depend on how many Subform are created.
  2. Power form only run on the web.
  3. Power form can be a little confusing for develop.
There's two type of power form:
Browse and Edit.
Browse are only for search and browse, more likely a select and search form.
Edit are for revise or create data, more likely a headerless form.

Okay the basic creation is like this:

  • Create the Power Browse / Edit Form.
  • Create a Standard Subform / Reuseable Subform.
  • Create a Mapping Link.
  • Using Power Forms System Functions and Event Rules
  • Creating Grid

  1. I’ve assumed that you have two tables (for sample only) linked by its FK and PK, say the keys are DOCO, DCTO, KCOO. 
  2. For table 1, it has DELN, AN8, ALPH and for table 2, it has LNID, ITM, LITM, DESC.
  3. Choose Power EDIT form and insert a subform (reusable or embedded, depends on your design).
  4. Attach Header BV to Power form and detail BV to subform. (procedure is similar to any form). Make sure the Parent are right (I think it will only be one available because you now only have 1 subform).
  5. Check if subform datastructure has DOCO, DCTO, KCOO in it (I think there will be there because they are Primary Keys) if not, just add them. The purpose is to receive subform interconnect values.
  6. In properties of Power form, select tab “Mapping links”. Check whether proper subform is selected in “Link To” combo box. Assign the correspond keys field/variable of power form which would contain keys values and needs to be passed to subform. You can select the proper direction "Link To Parent", "Link To Child" or "Link To Child and Back To Parent" symbol.
  7. Use system function “Notify Child” to pass control and data to subform. Most probably you would like to use this function in “Post dialog is initialized” event of Power Form.
  8. Once this function is executed, an event “Notified by Parent” would be invoked in subform.
  9. Assign Subform interconnect values (SI DOCO for example) to the filter fiield on subform. This would show all the detail records on subform.
  10. The detail records would be shown out if Automatic find on entry property is set on the grid of subform, otherwise you must do step 11.
  11. Add/insert manually "Push Button FIND" on the subform and add System Function "Press Button" FIND in the "Notified by Parent" event of Subform.
  12. Make it hidden if you don't want user to see.
There are additional step if you want the Grid detail to be save to table if edited/added record.
  1. Insert a Push button with default functionality of “Save” on subform and Hide it if necessary.
  2. On Power form’s (Parent forms) OK button’s assign system function “Trigger Default Child Action” and choose SAVE button of subform. This would save the detail record along with header record. (there are other methods as well)
Okay that's all for a while, because maybe this will be the last basic tutorial of JD Edwards from me.
Hope it helps you

If anything wrong, feel free to inform me.
You can also get a complete overview for creating power form in powerpoint.
Just feel free to ask and comment.

Saturday, October 15, 2011

ARP (Address Resolution Protocol) Part 1

Istilah ARP sering muncul dalam artikel networking dan hacking.

Jujur saja, pada saat membaca tentang ARP, saya sama sekali buta tentang ARP dan kawan-kawannya.
Belakangan ini jadi teringat untuk menulis hal yang saya tau (walaupun hanya secara teori dan konsep) tentang apa itu ARP sebenarnya dan tentunya dituangkan dalam artikel ini :)
Diharapkan sebelum membaca sudah mengenal sedikit tentang konsep Internet, TCP/IP atau OSI Layer.

ARP  = Address Resolution Protocol.
Dilihat dari namanya yang bila diterjemahkan secara harafiah dalam bahasa indonesia:
"Suatu protokol (aturan) untuk memperoleh alamat (IP Address) yang terdapat dalam jaringan"

ARP didefinisikan di RFC 826 oleh David Plummer (1982). Agak lawas bukan?
ARP bekerja dengan melakukan broadcast. Ia akan menerima IP Address (selanjutnya IP saja) tujuan dan mengirim secara broadcast permintaan ke semua mesin untuk menjawabnya lewat ARP.

Ilustrasinya seperti ini,
- A menerima IP dari si C
- A mengirim request MAC Address (Ethernet) dari IP si C
- Semua menerima request ini karena dilakukan secara broadcast
- IP si C yang sesuai dengan request dari A, akan mengirim reply dengan ARP
- si A akan menerima sebuah balasan ARP dari si C melalui 48 bit MAC Address.

ARP berfungsi sebagai mapping address (pengalamatan) antara Data Link layer dan Network Layer dalam OSI Model. Atau Internet layer dan Network layer dalam model lainnya.

Dalam hal ini, TCP/IP pada Data Link layer merujuk pada MAC Address dan Network Layer merujuk pada IP Address sebagai pengalamatannya.

ARP akan menterjemahkan IP Address ke MAC Address.
Adanya ARP ini tidak lain karena IPv4 mempunyai keterbatasan untuk menyimpan MAC Address sebagai bagian dari IP Address (IPX dan IPv6 sudah dapat melakukannya, dengan kata lain bisa lebih sedikit protokol yang digunakan tanpa ARP, namun dapat dilakukan hal yang sama seperti IPv4 jika perlu, yaitu dengan ARP)


Karena itu, syarat agar kedua host tersebut saling berkomunikasi adalah IPv4 harus diterjemahkan menjadi alamat fisik pada ethernet card (MAC Address). Dan semua ini dilakukan oleh ARP. Protokol yang sudah cukup lawas ini sangat rentan terhadap security karena dibuat ketika belum adanya pertimbangan mengenai security.

Ada juga RARP (Reverse ARP), kebalikan dari ARP, ia akan melakukan mapping dari MAC Address ke IP Address. Untuk mengurangi jumlah ARP request yang berlebihan (load berlebih), hampir semua Operating System menerapkan ARP Cache untuk menyimpan mapping yang sering digunakan.
ARP ARP













Mengenai security issue, ARP cache dan tentang ARP lebih lanjut, jika memungkinkan, akan dibahas pada artikel selanjutnya.

Sumber:
www.wikipedia.org
www.tech-faq.com
www.softpanorama.org

Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Friday, October 7, 2011

Deities , Symbolism dan Paganism

Deities, Symbolism, and Paganism
(Dewa-dewa, Simbolisme, dan Paganisme)

Ternyata selama ini ada beberapa hal yang tidak kita ketahui karena sejarah tercampur aduk oleh cerita dongeng dan mitos (mouth to mouth). Sewaktu menonton film-film yang diangkat dari mitologi Yunani maupun Romawi, menggerakan hati saya untuk melakukan pencarian secara objektif dan menulis / menterjemahkan sumber-sumber tentang ketiga hal diatas : Dewa, Simbolisme dan Paganisme.

Sejak zaman manusia purba / lampau, paganisme dan simbolisme telah digunakan dalam mitologi.
Saat itu, usaha untuk menjelaskan mitologi kepada orang-orang tidak dapat dibuat melalui suatu bahasa, karenanya biasanya dilukiskan dalam dinding goa dan dijelaskan lewat lukisan/gambar/ukiran.

Seiring dengan waktu, simbol penyembahan pagan berkembang lewat simbol yang rumit, seperti pentricate, simbol yang digunakan untuk merepresentasikan dewa natural/alam dan dewi Roma, Venus ( Aphrodite Yunani ), oleh karena ia adalah personifikasi dari hasrat dan hubungan antara pria dan wanita ( jika anda pernah baca The Da Vinci Code, sangat menarik karena dijelaskan cukup informatif tentang hal ini )

Tetapi sayangnya, pada era Gereja, simbol-simbol tersebut digunakan untuk mengemukakan hal yang buruk tentang Kristiani, seperti tentang dewa Poseidon, senjatanya yang seperti garpu besar/gada (Trident) menyimbolkan Lucifer ( yang sekarang dikenal Si Iblis / The Devil ).
Orang-orang China dalam mitologinya menggunakan simbol Yin dan Yang sebagai dua kekuatan yang saling
bertubrukan tertahan dalam telur kosmik (Cosmic Egg) pada permulaan waktu, yang juga mengikutsertakan Pan Ku, Dewa Purba Iblis Raksasa (Primordial Giant God/Demon). Pan Ku berhasil lepas dengan Yin dan Yang dari telur, tetapi saat itu juga, kekuatan itu bertarung satu sama lain. Pan Ku memisahkan mereka, dimana simbol hitam dan putih yang saling berputar (seperti angin) satu sama lain menggambarkan keduanya saling bertarung. Tetapi telah disalahartikan sebagai simbol konstan martial arts (bela diri), dimana arti sesungguhnya telah hilang dan hanya sedikit yang mengetahuinya.

Pagans telah dikenal sebagai pengikut Satan, oleh karena gereja. Pagans adalah kata yang digunakan untuk menunjukkan penyembah berhala (Lucifer atau Satan), atau semua setan/iblis yang ditulis dalam Alkitab, dimana sesungguhnya makna awalnya tidaklah seperti itu. Pagans adalah pemujaan terhadap idols / idola, simbol, digunakan sebagai pengganti yang tepat terhadap unsur ketuhanan/kedewaan yang dipuja.
Untungnya bidang kesenian mampu melindungi simbolisme dan idols dalam pagan yang hampir lenyap atau gereja tetap melindunginya sekalipun penolakan yang ada dalam Gereja karena menganut paham monotheistic (Yang Esa) seperti mosaics of Poseidon, Venus De Milo atau Birth of Venus.


The Devils (Iblis)
Beberapa spesialis Mitologi yang juga memiliki sedikit pengetahuan tentang Yahudi dan Kristen, mempelajari konsep tentang "Iblis", yang menurutnya telah disalah artikan sebagai penguasa Neraka, seperti yang pernah disebut dalam Dante;s The Divine Comedy, the Inferno.
Iblis lebih tepatnya, secara teknis merujuk kepada malaikat pemberontak (fallen angel) yang dijatuhkan hukuman pada saat pertempuran Malaikat dan Tuhan. Lucifer yang biasanya disalahartikan sebagai Satan, adalah pemimpin daripada pemberontakan tersebut. Lucifer jika diterjemahkan ke dalam bahasa Inggris adalah "The Morning Star", yang merupakan malaikat tertinggi di mata Tuhan. Dia melakukan pemberontakan dan mengajak beberapa malaikat lainnya mengikut dia. Ia bertempur melawan Tuhan, tetapi malaikat Tuhan Archangel, Michael, mengirim pasukan dan mengalahkan Lucifer, membuangnya jauh beserta antek-anteknya ke dalam Neraka.

Di satu sisi, Satan, bukanlah malaikat pemberontak. Ia adalah Malaikat Penghakiman, yang terkadang misinya berbeda dengan Tuhan. Satan pergi ke padang gurun dimana Yesus sedang berkelana dan berpuasa. Satan menggodanya 3 kali untuk menguji iman Yesus, tetapi iman Yesus ternyata sama kuatnya seperti Tuhan dan selama 3 kali Yesus menolak Satan.
Satan tidak dilempar kedalam jurang api neraka, tetapi masih berkeliaran diantara Surga dan Bumi. Tetapi, menurut tulisan Yohanes dalam Kitab Wahyu tentang Hari Kiamat, Tuhan akan membuang Satan kedalam lembah belerang di dalam Neraka. Banyak nama yang mengistilahkan ketiga makhluk tersebut, tetapi mereka juga saling berhubungan pada masa Akhir Dunia, Raja Anti-Christ. Menurut Kitab Wahyu, ketika Israel telah memperoleh tujuan akhirnya, Anti-Christ akan muncul/lahir dan berkuasa. Dalam beberapa tahun, kekuasaanya akan sangat jahat, tetapi Yesus dari Nazaret akan turun ke Bumi, seperti yang sudah Ia lakukan sebelumnya, dan melawan Anti-Christ dan menang. Anti-Christ direpresentasikan sebagai salah satu dari kepala yang ada pada naga berkepala banyak yang muncul menjelang Hari Kiamat.


Karena itu, Satan, Lucifer dan Anti-Christ masing-masing memeliki sesuatu yang sama, masing-masing melakukan perlawanan terhadap kekuasaan Tuhan. Satan menguji iman Tuhan dan Yesus, Lucfier memberontak terhadap Surga, dan Anti-Christ melakukan perlawanan terhadap Yesus.
Tentunya kita berharap semua maksud jahat dari si Iblis digagalkan / tidak berhasil seperti yang pewahyuan telah katakan.

Tulisan ini hasil sunting dan terjemahan dari sumber di internet
Jika ada salah dalam referensi, nama, dan arti mohon koreksi dan masukkannya.
Thanks :)

Thursday, September 22, 2011

Fast Dormancy Feature

Sehubungan dengan ketertarikan saya yang tinggi terhadap platform Android, telah menyeret saya kedalam suatu lingkaran teknologi gadget. Hahahaha lebai abis :p

Yap, tidak lain adalah Fast Dormancy.

Sebenarnya tinggal googling aja maka sudah bisa tau apa itu Fast Dormancy dan apa kegunaannya.
Membaca dari artikel berita IDG News di ComputerWorld.com (2010 bulan 2), saya menemukan apa itu Fast Dormancy.

Fast Dormancy adalah sebuah feature pada operator seluler dan providernya dalam upaya meningkatkan peforma smartphone yang juga menurunkan tingkat kemacetan pada jaringan telekomunikasi.
Fast Dormancy sudah distandarisasi oleh Nokia Siemens Network dan Qualcomm. Pendekatan yang dilakukan pada feature ini adalah memutuskan koneksi jaringan ketika informasi sudah dikirim atau diterima. Akan tetapi, koneksi putus-nyambung yang konstan ini dapat mengakibatkan penuhnya traffic pada jaringan seluler. Karena adanya connect dan disconnect akan meningkatkan traffic sinyal, menurunkan peforma jaringan.

Karena itu, standarisasi baru oleh kedua perusahaan tersebut akan membuat sedemikian rupa sehingga komunikasi antara smartphone dan jaringan telekomunikasi akan memperhatikan tingkat lalu lintas jaringan. Tes ini sudah dilakukan oleh jaringan operator Nokia Siemens dan chipset dari Qualcomm.
Dengan begitu peforma jaringan akan lebih baik dan baterai smartphone akan lebih irit.


Akan tetapi tidak semua operator seluler mendukung fast dormancy. Jika feature ini dinyalakan pada smartphone anda sedangkan operator seluler terkait tidak menyediakan fitur fast dormancy terbaru ini, maka yang terjadi sebaliknya: pemborosan baterai berlebih!!

Untuk mengatasi masalah ini, biasanya ada setup khusus yang bisa menonaktifkan fast dormancy pada smartphone. Tergantung dari jenis Operating System ataupun Vendornya/Merk, fast dormancy dapat dimatikan lewat kode khusus. (Biasanya hanya smartphone - smarphone high end yang mendukung feature fast dormancy)

Contoh pada samsung android (kebetulan saya pakai samsung),
Buka phone dialer, ketik *#9900# --> Call --> disable fast dormancy

Saya tidak tau apakah kode tersebut compatible pada semua Android high-end atau hanya pada Samsung Android. Untuk memastikan operator seluler yang anda gunakan mendukung fast dormancy, anda bisa menanyakan pada customer service.

Sumber: 
http://www.computerworld.com
http://www.xda-developer.com

Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

Friday, September 16, 2011

SQL Sequence / Auto Increments (Sample Code)

For documentation purposed.
So, I can open this article and being remembered again :)
For update increment number, such as line number, counter, etc. into table column "Counter" :
DECLARE @i As int
SET @i = 1

UPDATE USERS
SET @i= Counter = @i+1
For update table, in sequence (example):
SELECT counter = 0, * FROM Users INTO #tmp_Users
Should be
SELECT counter = 0, * INTO #tmp_Users FROM Users
 DECLARE @counter int
SET @counter = 0
UPDATE #tmp_Users
SET @counter = counter = @counter + 1
where "counter" is a column name in table "#tmp_user"

Doing the same (on the above) thing with the other method in SELECT statement :
We want something like this:
SELECT {increment value} as Counter, strUsername FROM Users

Counter   strUsername
----------------------
1             John
2             Mike
3             Laura
----------------------

Here is the solution:

CREATE TABLE #user
(
UserID int,
Username varchar(255)
)

INSERT INTO #user VALUES (10, 'John')
INSERT INTO #user VALUES (20, 'Mike')
INSERT INTO #user VALUES (30, 'Laura')
SELECT (
SELECT COUNT(UserID) + 1 AS Counter
FROM #user usr
WHERE usr.UserID < #user.UserID
) AS Counter, Username
FROM #user
For more information, we can all browse in here:

SQL SEQUENCE/AUTO INCREMENTS: RECOMMENDED ARTICLE/TUTOR
CLICK HERE :

Thanks.
Is there any wrong statement, reference or anything else in this article, I'm sorry and please let me know.
I just want to share what I knew :D