April 2007 - Posts
Some project in my office want to open a new window with automatically maximize. I have to google about this, and there is some resource out there that is not work. So I have try to combine some resource and my knowledge about javascript and found a code and it's work.
This is my code.
<SCRIPT LANGUAGE="JavaScript">
function openWindow(URL)
{
var availHeight = screen.availHeight;
var availWidth = screen.availWidth;
var x = 0, y = 0;
if (document.all) <!--For IE or Mozilla-->
{
x = window.screenTop;
y = window.screenLeft;
}
else if (document.layers) <!--For Navigator-->
{
x = window.screenX;
y = window.screenY;
}
var arguments = 'resizable=1, toolbar=1, location=1, directories=1, addressbar=1, scrollbars=1, status=1, menubar=1, top=0, left=0, screenX='+x+', screenY='+y+', width='+availWidth+', height='+availHeight;
newWindow = window.open(URL,'',arguments);
}
</SCRIPT>
Alkisah jaman dahulu kala ada seorang petani miskin yang hidup dengan seorang putera nya. Mereka hanya memiliki seekor kuda kurus yang sehari-hari membantu mereka menggarap ladang mereka yang tidak seberapa. Pada suatu hari, kuda pak tani satu-satu nya tersebut menghilang, lari begitu saja dari kandang menuju hutan.
Orang-orang di kampung yang mendengar berita itu berkata: "Wahai Pak tani, sungguh malang nasibmu!".
Pak tani hanya menjawab, "Malang atau beruntung? Aku tidak tahu …"
Keesokan hari nya, ternyata kuda pak Tani kembali ke kandangnya, dengan membawa 100 kuda liar dari hutan. Segera ladang pak Tani yang tidak seberapa luas dipenuhi oleh 100 ekor kuda jantan yang gagah perkasa. Orang-orang dari kampung berbondong datang dan segera mengerumuni "koleksi" kuda-kuda yang berharga mahal tersebut dengan kagum. Pedagang-pedagang kuda segera menawar kuda-kuda tersebut dengan harga tinggi, untuk dijinakkan dan dijual. Pak Tani pun menerima uang dalam jumlah banyak, dan hanya menyisakan 1 kuda liar untuk berkebun membantu kuda tua nya.
Orang-orang di kampung yang melihat peristiwa itu berkata: "Wahai Pak tani, sungguh beruntung nasibmu!".
Pak tani hanya menjawab, "Malang atau beruntung? Aku tidak tahu …"
Keesokan hari nya, anak pak Tani pun dengan penuh semangat berusaha menjinakan kuda baru nya. Namun, ternyata kuda tersebut terlalu kuat, sehingga pemuda itu jatuh dan patah kaki nya.
Orang-orang di kampung yang melihat peristiwa itu berkata: "Wahai Pak tani, sungguh malang nasibmu!".
Pak tani hanya menjawab, "Malang atau beruntung? Aku tidak tahu …"
Pemuda itupun terbaring dengan kaki terbalut untuk menyembuhkan patah kakinya. Perlu waktu lama hingga tulangnya yang patah akan baik kembali. Keesokan harinya, datanglah Panglima Perang Raja ke desa itu. Dan memerintahkan seluruh pemuda untuk bergabung menjadi pasukan raja untuk bertempur melawan musuh di tempat yang jauh. Seluruh pemuda pun wajib bergabung, kecuali yang sakit dan cacat. Anak pak Tani pun tidak harus berperang karena dia cacat.
Orang-orang di kampung berurai air mata melepas putra-putra nya bertempur, dan berkata: "Wahai Pak tani, sungguh beruntung nasibmu!".
Pak tani hanya menjawab, "Malang atau beruntung? Aku tidak tahu …"
KESIMPULAN
Kisah di atas, mengungkapkan suatu sikap yang sering disebut: non-judgement. Sebagai manusia, kita memiliki keterbatasan untuk memahami rangkaian kejadian yang diskenariokan Sang Maha Sutradara. Apa-apa yang kita sebut hari ini sebagai "kesialan", barangkali di masa depan baru ketahuan adalah jalan menuju "keberuntungan" . Maka orang-orang seperti Pak Tani di atas, berhenti untuk "menghakimi" kejadian dengan label-label "beruntung", "sial", dan sebagainya.
Karena, siapalah kita ini menghakimi kejadian yang kita sunguh tidak tahu bagaimana hasil akhirnya nanti. Seorang karyawan yang dipecat perusahaan nya, bisa jadi bukan suatu "kesialan", manakala ternyata status job-less nya telah memecut dan membuka jalan bagi diri nya untuk menjadi boss besar di perusahaan lain.
Maka berhentilah menghakimi apa –apa yang terjadi hari ini, kejadian –kejadian PHK , Paket Hengkang , Mutasi tugas dan apapun namanya . . . .yang selama ini kita sebut dengan "kesialan" , "musibah " dll , karena .. sungguh kita tidak tahu apa yang terjadi kemudian dibalik peristiwa itu (di).
"Hadapi badai kehidupan sebesar apapun. Tuhan takkan lupa akan kemampuan kita. Kapal hebat diciptakan bukan untuk dilabuhkan di dermaga saja."
A Wonderfull Cache? Hmm, for some people, maybe it's nothing. But for me it's more than anything. I'll try to learn cache just for one condition, it's for boost web application performance. Btw, cache is not just only one solution to make web application performance more better.
I'm new in cache, so I hope, I get feedback from this article.
OK.... until now I have just one conclusion about Cache. Cache is just only storage that store in memory server that can accessed by all user who accessing the application. There is 2 condition when we want to use Cache.
- Cache must be updated constantly. When cache was created at the first time, it will stay a live in memory server until expired. So, cache must be removed from memory when "ADD", "UPDATE", and "DELETE" in database (except you want to let it untill expired).
- When we want to use Cache in filtering data, we must creating some unique keys of Cache. If there is ten combination of filter data is equal as ten keys of Cache.
I have try to make an application to show list of data with Cache. First I make some method to manage Cache.
private ArrayList CacheRemoveAll(ArrayList CacheKeysList)
{
foreach (string CacheKey in CacheKeysList)
{
Cache.Remove(CacheKey);
}
CacheKeysList = new ArrayList();
return CacheKeysList;
}
private ArrayList CacheRemove(ArrayList CacheKeysList, string CacheKey)
{
Cache.Remove(CacheKey);
if (CacheKeysList.Count > 0) CacheKeysList.Remove(CacheKey);
return CacheKeysList;
}
private ArrayList CacheAdd(ArrayList CacheKeysList, string CacheKey, object Value)
{
//You can set time expiration in web config
Cache.Add(CacheKey, Value, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 10, 0), CacheItemPriority.Default, null);
CacheKeysList.Add(CacheKey);
return CacheKeysList;
}
Create private variable to store keys of Cache, and it should be able accessed by all user, so I use Cache too to store list of the keys.
If we want to create another module/page which get the data from other table, we must create a new private variable. Change "ModuleCacheKeys" to another key according to module name or table.
private ArrayList ModuleCacheKeys
{
get { return (Cache["ModuleCacheKeys"] == null) ? new ArrayList() : (ArrayList)Cache["ModuleCacheKeys"]; }
set { Cache["ModuleCacheKeys"] = value; }
}
When binding data to datagrid/gridview, we can use that methods to add or remove datasource to/from Cache. Here is my code when binding the data.
private void BindData()
{
//txtKeyword.Text,ddl.SelectedValue is control in filter area
//Used each control value to format cache key
string CacheKey = string.Format("{0}{1}",txtKeyword.Text,ddl.SelectedValue);
DataSet DataSource = new DataSet();
DataSource = (DataSet)Cache[CacheKey];
if (DataSource == null)
{
ModuleCacheKeys = CacheRemove(ModuleCacheKeys, CacheKey);
ConnectionStringSettings Module = ConfigurationManager.ConnectionStrings["Module"];
DataSet ds = new DataSet();
ds = SqlHelper.ExecuteDataset(Module .ConnectionString, CommandType.Text, "SELECT * FROM TableName WHERE '" + txtKeyword.Text + "' IS NULL OR name LIKE '%" + txtKeyword.Text + "%' AND code = '" + ddl.SelectedValue + "'");
DataSource = ds;
ModuleCacheKeys = CacheAdd(ModuleCacheKeys, CacheKey, DataSource);
}
GridView1.DataSource = DataSource.Tables[0].DefaultView;
GridView1.DataBind();
}
We can use CacheRemoveAll method to remove all cache. We can use it in Add, Update, or Delete method.
Note: You must change some code so that can according to .NET 1.1
Seorang anak lahir setelah 11 tahun pernikahan. Mereka adalah pasangan yang saling mencintai dan anak itu adalah buah hati mereka. Saat anak tersebut berumur dua tahun, suatu pagi si ayah melihat sebotol obat yang terbuka. Dia terlambat untuk ke kantor maka dia meminta istrinya untuk menutupnya dan menyimpannya di lemari. Istrinya, karena kesibukannya di dapur sama sekali melupakan hal tersebut.
Anak itu melihat botol itu dan dengan riang memainkannya. Karena tertarik dengan warna obat tersebut lalu si anak memakannya semua. Obat tersebut adalah obat yang keras yang bahkan untuk orang dewasa pun hanya dalam dosis kecil saja. Sang istri segera membawa si anak ke rumah sakit. Tapi si anak tidak tertolong. sang istri sangat takut dan ngeri membayangkan bagaimana dia harus menghadapi suaminya.
Ketika si suami datang ke rumah sakit dan melihat anaknya yang telah meninggal, dia melihat kepada istrinya dan mengucapkan 3 kata.
PERTANYAAN :
1. Apa 3 kata itu ?
2. Apa makna cerita ini ?
JAWABAN :Sang Suami hanya mengatakan "SAYA BERSAMAMU SAYANG" Reaksi sang suami yang sangat tidak disangka-sangka adalah sikap yang proaktif. Si anak sudah meninggal,tidak bisa dihidupkan kembali. Tidak ada gunanya mencari-cari kesalahan pada sang istri, lagipula seandainya dia menyempatkan untuk menutup dan menyimpan botol tersebut maka hal ini tidak akan terjadi.
Tidak ada yang perlu disalahkan. Si istri juga kehilangan anak semata wayangnya. Apa yang si istri perlu saat ini adalah penghiburan dari sang suami dan itulah yang diberikan suaminya sekarang.
Jika semua orang dapat melihat hidup dengan cara pandang seperti ini maka akan terdapat jauh lebih sedikit permasalahan di dunia ini. "Perjalanan ribuan mil dimulai dengan satu langkah kecil" Buang rasa iri hati, cemburu, dendam, egois dan ketakutanmu. Kamu akan menemukan bahwa sesungguhnya banyak hal tidak sesulit yang kau bayangkan.
MORAL CERITA
Kadang kita membuang waktu hanya untuk mencari kesalahan orang lain atau siapa yang salah dalam sebuah hubungan atau dalam pekerjaan atau dengan orang yang kita kenal.
Hal ini akan membuat kita kehilangan kehangatan dalam hubungan antar manusia.
In .NET 1.1 we cannot set value null to integer or decimal data type.
But in .NET 2.0 we can do that.
Try this:
VB
Dim i As Nullable (Of Integer) = Nothing
C#
Nullable<int> i = null;