Kamis, 20 Desember 2007

C# 3.0 Partial Method Ex


using System;


using System.Collections.Generic;


using System.Text;


namespace PartialMethod


{


class Program


{


public partial class MypartialClass


{


partial void MypartialMethod();


public void CallPartialMethod()


{


MypartialMethod();


}


}


public partial class MypartialClass


{


partial void MypartialMethod()


{


Console.WriteLine("Ronde kedua, baru di declare , belakangan");


}


}


static void Main(string[] args)


{


MypartialClass test = new MypartialClass();


test.CallPartialMethod();


Console.ReadLine();


}


}


}

Selasa, 18 Desember 2007

4 Ways declaring bool parameter , the last one is for c#3.0


this reference from msdn blog


using System;


using System.Collections.Generic;


using System.Text;


using System.IO;


namespace ConsoleApplication1


{


class Program


{


[Flags]


enum DisplayUserOptions


{


Email = 0x1,


PhoneNumber = 0x2,


Both = (Email | PhoneNumber),


}



static void Main(string[] args)


{


User user=new User();


TextWriter stream=null;


//cara 1


DisplayUser1(user, Console.Out, true /*displayEmail*/, false /*displayPhoneNumber*/);


//cara 2


DisplayUser2(user, stream, DisplayUserOptions.Email);


//cara 3


//More readable but much more verbose(panjang kata2nya)


DisplayUserOption options = new DisplayUserOption();


options.Email = true;


options.PhoneNumber = false;


DisplayUser3(user, stream,options);


//Cara 4 di C#3.0 bisa pake object initializers


DisplayUser3(user, Console.Out, new DisplayUserOption { Email = true, PhoneNumber = false });


}


static void DisplayUser1(User user, TextWriter stream, bool displayEmail, bool displayPhoneNumber)


{



}


static void DisplayUser2(User user, TextWriter stream, DisplayUserOptions options)


{ }


static void DisplayUser3(User user, TextWriter stream, DisplayUserOption options)


{ }


}


class User


{ }


struct DisplayUserOption


{


public bool Email;


public bool PhoneNumber;


}


}

Minggu, 09 Desember 2007

Decorative Pattern

The most Inner object , Pass the operation to outer object and so on.
This is a nice pattern approach.
here an example

using System;
namespace StarbuzzCoffee
{
class Program
{
static void Main(string[] args)
{
Beverage beverage = new Espresso();
beverage = new Mocca(beverage);
Console.WriteLine("{0} {1}", beverage.Getdescription(), beverage.Cost());

Beverage beverage2 = new Darkroast();
//the pattern is this is inheritance
//so the most inner object return the cost, the outer return + the inner
//and so on and so on till outside
beverage2 = new Mocca(beverage2);//see it change the base desc and
beverage2 = new Mocca(beverage2);//double mocha
Console.WriteLine(beverage2.description + " " + beverage2.Cost());
Console.ReadLine();

}
}


public abstract class Beverage
{
public string description="unknown beverage";
public virtual string Getdescription()
{
return description;
}
public abstract double Cost();
}

//public abstract class CondimentDecorator : Beverage
//{
// public abstract string Getdescription();
//}
public class Espresso : Beverage
{
public Espresso()
{
description = "Espresso";
}
public override double Cost()
{
return 1.99;
}
}
public class Darkroast : Beverage
{
public Darkroast()
{
description = "Darkroast";
}
public override double Cost()
{
return .22;
}
}
public class Houseblend : Beverage
{
public Houseblend()
{
description = "Houseblend";
}
public override double Cost()
{
return .89;
}
}
public class Mocca: Beverage
{
private Beverage beverage;
public Mocca(Beverage theBevarage)
{
beverage = theBevarage;

}
public override string Getdescription()
{
return beverage.Getdescription() + ",Mocha";
}

public override double Cost()
{
return .20 + beverage.Cost();
}
}
}

Kamis, 06 Desember 2007

Generic Constraint


using System;


using System.Windows.Forms;


namespace Generic101


{


public partial class Form1 : Form


{


public Form1()


{


InitializeComponent();


}


private void Form1_Load(object sender, EventArgs e)


{


Testclass testdoang = new Testclass();


MethodA(testdoang);


MethodB(testdoang);


TestClass<Chubby> damn = new TestClass<Chubby>();


}


public void MethodA<I>(I parameter1) where I : IComparable


{


parameter1.CompareTo(this);


}


public void MethodB(IComparable param1)


{


param1.CompareTo(this);


}


}


public class Testclass: IComparable


{


#region IComparable Members


public int CompareTo(object obj)


{


throw new Exception("The method or operation is not implemented.");


}


#endregion


}


public interface A


{


void method1();


void method2();


}


public interface B


{


void method1();


void method3();


void method4();


}


public class C


{


public void method1()


{


}


public void method3(){}


}


public class TestClass<T> where T:C,A,B,new()


{


public TestClass()


{


T aclass=new T();


aclass.method1();


aclass.method2();


aclass.method3();


aclass.method4();


}


}


public class Chubby: C,A,B


{


public Chubby()


{


}


public new void method1()


{}


public new void method3()


{ }


public void method2()


{


}


public void method4()


{


// throw new NotImplementedException();


}


}


}

Jumat, 23 November 2007

Jawaban Quiz PT.Gudang informatika


using System;


using System.Collections.Generic;


using System.Text;


namespace ConsoleApplication6


{


class Program


{


public static int maxangka = 999;


public static int AlphabetMax = 90;


public static int AlphabetMin = 65;



static void Main(string[] args)


{


// SoalNo1();


//Alphabet 65-90


SoalNo1();


Console.ReadLine();


SoalNo2(000);


Console.ReadLine();


}



static void SoalNo2(int angkanya)


{


if (angkanya <= 999+3)


{


if (angkanya <= maxangka)


{


string tmpstr = angkanya.ToString().PadLeft(3, Convert.ToChar("0"));


PrintHurufOnebyOne(65);


Console.Write(tmpstr);


Console.Write(",");


}


if (angkanya==1000)


{


PrintHurufOnebyOne2(66);


}


if (angkanya == 1001)


{


PrintHurufOnebyOne3(66);


}


if (angkanya == 1002)


{


PrintHurufOnebyOne4(66);


}



 




SoalNo2(angkanya + 1);


}


}



static void PrintHurufOnebyOne(int huruf)


{


if (huruf >= 65 && huruf <= 90)


{


char theletter = Convert.ToChar(huruf);


string tmpstr = theletter.ToString().PadLeft(3, Convert.ToChar("A"));


Console.Write(tmpstr);


}


}


static void PrintHurufOnebyOne2(int huruf)


{


if (huruf > 65 && huruf <= 90)


{


char theletter = Convert.ToChar(huruf);


string tmpstr = "AA" + theletter.ToString();


Console.Write(tmpstr);


Console.Write("999");


Console.Write(",");


PrintHurufOnebyOne2(huruf + 1);


}


}


static void PrintHurufOnebyOne3(int huruf)


{


if (huruf > 65 && huruf <= 90)


{


char theletter = Convert.ToChar(huruf);


char minalphabet = Convert.ToChar(AlphabetMin);


char maxalphabet = Convert.ToChar(AlphabetMax);


string tmpstr = minalphabet.ToString() + theletter.ToString() + maxalphabet.ToString();


Console.Write(tmpstr);


Console.Write("999");


Console.Write(",");


PrintHurufOnebyOne3(huruf + 1);


}


}


static void PrintHurufOnebyOne4(int huruf)


{


if (huruf > 65 && huruf <= 90)


{


char theletter = Convert.ToChar(huruf);


string tmpstr = theletter.ToString().PadRight(3, Convert.ToChar(AlphabetMax));


Console.Write(tmpstr);


Console.Write("999");


Console.Write(",");


PrintHurufOnebyOne4(huruf + 1);


}


}


private static void SoalNo1()


{


int @switch = 5;


int banding = @switch;


int max = 1000;


string delimiter = "*";


for (int a = 1; a <= 1000; a++)


{


Console.Write(a);


if (a == banding)


{


int coba = (@switch == 3) ? @switch = 5 : @switch = 3;


Console.Write(delimiter);


banding += @switch;


}


}


Console.ReadLine();


}


}


}

Senin, 19 November 2007

Verbatim


public class Verbatim


{


static void Main()


{


//all the preceding after @ is not treated as escape character


string fileLocation = @"c:\datafile.txt";


Console.WriteLine("File is located at {0}",


fileLocation);


//booking a word in all the words already booked in c#


int @for = 12;


Console.WriteLine(@for.ToString());


Console.ReadLine();


}


 


}

Escape Characters


namespace PreProcessorsDirective


{


class Class1


{


class HelloWorld


{


static void Main()


{


Console.Write("\u0048\u0065\u006C\u006C\u006f\n");


Console.Write("\x77\x6F\x72\x6c\x64\x21\b");


Console.ReadLine();


}


}


 


}


}

Numeric Literal and Hexadecimal


class NumericLiteral


{


static void Main()


{


//numeric literal


float unitprice = 123.45F;


double cobacoba = 3.256;


decimal coba2 = 3.256M;


//hexadecimal


int sixteen = 16;


int sixteeninDecimal = 0x10;


 


// end of mt940 msg is char(0x1A)


// if (line.Length == 1 && line[0] == 0x1A)


//0x1A equals 26


}

PreProcessorsDirective


#define debugging


using System;


using System.Collections.Generic;


using System.Text;


namespace PreProcessorsDirective


{


class PreProcessorsDirective


{


#if debugging


static void Write()


{


Console.WriteLine("Debugging.>>");


}


#endif


#pragma warning disable 219


#line 10


static void Main(string[] args)


{


int a = 5; //219 Warning


#if debugging


Write();


#endif


}


}


}

Garbage Collector

Now i won't deal with the theory.
just a brief look on code.
To force GC to collect the candidate to dispose

GC.collect();

GC.WaitForPendingFinalizers();
This will make GC wait for all of the finalizer of every suspected object to be called

You can override finalizer with short key ~
~thenameoffinalizer()
{
//do something
}

The right thing to write on the so When calling finalizer also call dispose
~Thing()
{
Dispose();
//Do something on finalizer
}
can do try catch, if error register again to finalize with this command
GC.ReRegisterForFinalize(t);

There are also to check the total memory method on GC.
long G =GC.GetTotalMemory(true);

Jumat, 16 November 2007

Live from Lumpur Lapindo, Sidoarjo

I've gone to this Lumpur lapindo, at porong sidoarjo.penulis adalah org jkt yang hanya mendengar dari berita sblmnya.
sekarang tempat ini sudah menjadi tempat wisata. parkir motor 2000, masuk 3000/org.
disana pada tepian pertama anda akan melihat 2 atau 3 kolam besar di bawah anda. ada yang satu kolam itu sudah menjadi keras, seperti tanah kering retak2.dan anda lihat
ada penangkal2 petir , ujung tiang masjid.2 atau 3 desa lenyap di bawah kolam itu. lalu dgn membayar 10.000 anda di antar ke 2 titik, ke kolam utama dan ke sebelah kanan, tempat semburan baru. di Tempat semburan baru.. anda lihat gelembung2 . "Semenjak bola2 beton di lemparkan ke pusat semburan, tanah itu kan seperti rongga, jadi malah di kolam2 bawahnya terjadi pusat semburan baru(blub blub blup)" keterangan tour guide.
Tour guide juga menunjukkan rumah Marsina kasus marsina yg memperjuangkan hak teman2nya dan ditembak oleh TNI "mungkin ini pembalasan Marsina" ,cetus tourguide.Juga ada rumah doyok yang tenggelam.
di samping kiri kolam utama anda lihat bahwa tanggulnya jebol, atas nya keras tapi tengah2 mengalir terus lumpurnya dan juga Pipa AWAL yang jebol/meledak, asal mula lumpur. "LUMPUR INI AKAN TERUS MENGALIR 30 tahun lagi"
Sepanjang jalan porong kini sudah seperti Kota hantu, tidak berpenghuni , bank2 tidak beroperasi dan Flyover jalan tol di hancurkan, dan bau belerang / sulfur di mana2.
semua tanah di sana di black list gak bisa jadi pinjaman.
Menurut tour guide yg jg adlh warga sidoarjo yg menjadi korban, "Banyak warga yang sudah mati Karena stress , terutama yang tua2".

rencana ingin dialirkan ke kali porong diprotes warga, bygkan. . .kalo masuk ke kali

Kemanakah akan dialirkan lumpur ini?? 30 tahun lagi?
Berduka untuk Porong . . . .

Kamis, 15 November 2007

Code Generator Example


// Set up our assembly and module builders:


string outFilename = "foo.exe";


AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly(


new AssemblyName("foo"), AssemblyBuilderAccess.Save,


AppDomain.CurrentDomain.Evidence);


ModuleBuilder mb = ab.DefineDynamicModule(ab.FullName, outFilename, false);


// Create a simple type with one method:


TypeBuilder tb = mb.DefineType("Program",


TypeAttributes.Public | TypeAttributes.Sealed, typeof(object));


MethodBuilder m = tb.DefineMethod("MyMethod",


MethodAttributes.Public | MethodAttributes.Static);


// Now emit some very simple "Hello World" code:


ILGenerator ilg = m.GetILGenerator();


ilg.Emit(OpCodes.Ldstr, "Hello, World!");


ilg.Emit(OpCodes.Call,


typeof(Console).GetMethod("WriteLine", new Type[] { typeof(string) }));


ilg.Emit(OpCodes.Ret);


// Lastly, create the type, set our entry point, and save to disk:


tb.CreateType();


ab.SetEntryPoint(m);


ab.Save(outFilename);


 


For all of you who have example on LGC for 2.0 Please Post!!!

Drag n Drop on Control

Set the control property Allowdrop=true.


When mouse down thecontrol.Dodragdrop(object,DragdropEffectsEnum)


DragdropEffects.Copy | Move | ALL | None | Link | Scroll


and then on the control that you want to drop


put the logic on Drag Enter And Drag Drop


set the drag enter e.effect


and put the logic when data is drop.


 


 

Rabu, 14 November 2007

Validating XML with DTD or XSD

public void ValidateXMLagainstDTD(Stream thestream)


{


XmlTextReader reader = new XmlTextReader(thestream);


XmlValidatingReader validator = new XmlValidatingReader(reader);


validator.ValidationType = ValidationType.DTD;


validator.ValidationEventHandler += new ValidationEventHandler(DTDValidationEventHandler);


while (validator.Read())


{


//add something logical here


}


validator.Close();


if (Isvalid)


Console.WriteLine("Document is valid");


else


Console.WriteLine("Document is Invalid");


Console.ReadLine();


}


public void DTDValidationEventHandler(object sender,


ValidationEventArgs args)


{


this.Isvalid = false;


Console.WriteLine("Validation event\n" + args.Message);


}

Create XML through XmlWriterSettings => the fastest,efficient way instead using DOM


public static MemoryStream CreateXMltoStream(string emailsubject,string emailfrom,string emailto)


{


MemoryStream stream=new MemoryStream();


XmlWriterSettings thesettings = new XmlWriterSettings();


//writing to stream default is UTF8


Encoding x=System.Text.Encoding.GetEncoding("ISO-8859-1");


thesettings.Encoding = x;


thesettings.Indent = true;


//Write the header


thesettings.OmitXmlDeclaration = false;


thesettings.NewLineOnAttributes = true;


using (XmlWriter writer = XmlWriter.Create(stream, thesettings))


{


writer.WriteRaw(@"<!DOCTYPE MEDVRI_1 SYSTEM ""MEDVRI_1.dtd"">");


writer.WriteStartElement("MEDVRI_1");


writer.WriteStartElement("email");


writer.WriteStartElement("email.subject");


writer.WriteValue(emailsubject);


writer.WriteEndElement();


writer.WriteStartElement("email.from");


writer.WriteValue(emailfrom);


writer.WriteEndElement();


writer.WriteStartElement("email.to");


writer.WriteValue(emailto);


writer.WriteEndElement();


writer.WriteEndElement();


writer.WriteEndElement();


//free the memory


writer.Flush();


writer.Close();


return stream;


}


 


 

WSE 3.0

What is the use of WSE? WSE create a filter and security policy making kind of tunnel so what ever request go to that pipeline.


It can secure the server, and client app. make sure each of them using the correct policy.


there are usernamepolicy , certificate policy, and you can add an authorize one. Can do a custom policy too


What is good on learning this is WSE Hands on Lab,you’ll find the basic and advanced.


 

Minggu, 11 November 2007

List

What is actually List , Generic or T, it means that this has not yet been bound to a type argument.What differs from List for example, is that the List means it has been fully constructed,each of it's parameter has been bound.

Partially constructed generic type example:
class StringKeyDictionary : Dictionary { }

Jumat, 09 November 2007

How Does Reflection Detect This Paramater is Generic?

namespace PrintTypeParamsss
{
class Program
{
static void Main(string[] args)
{
PrintTypeparams(typeof(List<>));
PrintTypeparams(typeof(List));
PrintTypeparams(typeof(Dictionary));
PrintTypeparams(typeof(Dictionary));
PrintTypeparams(typeof(Nullable<>));

Console.ReadLine();
}
static void PrintTypeparams(Type t)
{
Console.WriteLine(t.FullName);
foreach (Type ty in t.GetGenericArguments())
{
Console.WriteLine("--> {0} {1} {2}",
ty.FullName,
ty.IsGenericParameter,
ty.IsGenericParameter ? ty.GenericParameterPosition : 0);
};

}
}
}

Property Info

namespace PropertyInfossss
{
public class Test
{
private string _Test;
public string Name
{
get { return _Test; }
set { _Test = value; }
}
}
class Program
{


static void Main(string[] args)
{
PropertyInfo a=typeof(Test).GetProperty("Name");
Console.WriteLine("Read:" + a.CanRead + " Write:" + a.CanWrite + " Type:" + a.PropertyType);
MethodInfo theSetMethod = a.GetSetMethod();
MethodInfo theGetMethod = a.GetGetMethod();
MethodBody theSetMethodBody= theSetMethod.GetMethodBody();
MethodBody theGetMethodBody= theGetMethod.GetMethodBody();


}
}

PE and Platform Kinds

Assembly a = Assembly.GetExecutingAssembly();
Module m = a.ManifestModule;
PortableExecutableKinds peKinds;
ImageFileMachine imageFileMachine; m.GetPEKind(out peKinds, out imageFileMachine);
if ((peKinds & PortableExecutableKinds.ILOnly) != 0)
{
// Assembly is platform independent.
}
else
{
// assembly is platform dependent
switch (imageFileMachine)
{
case ImageFileMachine.I386:
// i386, x86, IA-32, ... dependent.
break;
case ImageFileMachine.IA64:
// IA-64 dependent.
break;
case ImageFileMachine.AMD64:
// AMD-64, x64 dependent.
break;
}

}

Kamis, 08 November 2007

Pepatah Kuno Dinasti Ming

Haiaa . .
Banyak belajal banyak lupa
Sedikit belajal sedikit lupa
Pu yau Belajal Lupa semuanya ...
Haiaa
Jadi oe pili yang mana?
Kesimpulan ini kalo dibalik????
Belajar itu hanya Memberi kita gambaran, dan konsep, dan di halaman mana atau di buku mana atau di referensi mana.
Tapi Praktek itu Menerapkan Apa yang kita pelajari jadi nyata.. semakin mengukuhkan apa yang ada di otak kita.

Salam,


Tzu she

O'Desk Test

I passed the O'desk test on C# 66 or 70%
dunno lah. . . . what's the use
just for iseng2.

Aneka makanan Reflection,Methodinfo,MethodBody,Constructorinfo

public class Cobacoba
{
private void Lemparbatu(string batunya, int jumlahnya)
{

}
public int LemparbatuReturn(string batunya, int jumlahnya)
{
int hak = 0;
string tipenya = "sepatu";
try
{
Console.WriteLine("Lemparbatu return executed,Nilai params=>batunya: {0} jumlahnya: {1}", batunya, jumlahnya);
return jumlahnya;
}
catch (InvalidProgramException ex)
{

}
catch (ApplicationException eb)
{ }
return jumlahnya;
}
}
class Program
{
static void Main(string[] args)
{
MethodInfo m = typeof(Cobacoba).GetMethod("LemparbatuReturn");
//nyari tipe return
Type tipereturnnya = m.ReturnType;
Console.WriteLine(tipereturnnya.ToString());
//nyari tipe parameter
foreach (ParameterInfo param in m.GetParameters())
{
Console.WriteLine(param.Name + " " + param.ParameterType.ToString());
}
/*this shows the invoke Member*/
Cobacoba ttg=new Cobacoba();
MethodInfo method = typeof(Cobacoba).GetMethod("LemparbatuReturn");
/*the usage of methodbody*/
MethodBody mb= method.GetMethodBody();
IList x = mb.LocalVariables;
IList n = mb.ExceptionHandlingClauses;
/*the usage of Constructor Info*/
ConstructorInfo ci = typeof(string).GetConstructor(new Type[] { typeof(char[]) });
string s = (string)ci.Invoke(new object[] { new char[] { 'H', 'E', 'L', 'L', 'O' } });
Console.WriteLine(s);
Type tem = ttg.GetType();
string f="granit";
int g=3;
object[] t=new object[2];
t[0]=(Object) f;
t[1]=(Object) g;
try
{
tem.InvokeMember("LemparbatuReturn", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Instance, null, ttg, t);
}
catch (TargetInvocationException ex)
{
//do something Here
}
Console.ReadLine();
}
}

Activator object and General method Instancied

public class Customer
{
string name;
string address;
int Phonenumber;
}
class Program
{
static void Main(string[] args)
{
//this is better than d because Karena gak perlu super casting dan lebih gampang ketik
Customer c = Activator.CreateInstance();
//this is slower
Customer d = (Customer)Activator.CreateInstance(typeof(Customer));
Customer e=CreateandLognewobject("Dangdang");
Console.ReadLine();
}
static T CreateandLognewobject(string s)
{
T t = Activator.CreateInstance();
Console.WriteLine("Created new object '{0}' ; {1}", t, s);
return t;
}
}

Jumat, 02 November 2007

Gloria , Manukan

Ayam penyet luarbiasa garingnya
dan enak dan lembutnya.
dipadukan dengan Juice ALpukat yg Kental ,Ukuran gls besar,cucu coklat yg mantabs.
Luar biasa

Jumat, 05 Oktober 2007

Ansle,Bebek tugu pahlawan

Ansle - bubur kacang hijau, ada kolang kaling, kacang,kelapa
i don't like it too much
Bebek tugu pahlawan , Taste biasa aja masi enakan yang deket rumah

Selasa, 02 Oktober 2007

Cabut gigi

gue cabut gigi geraham belakang kemaren
now my teeth formation is back to shape

MIe ujung pandang

Mie dengan Daging ba , ang sio bak
porsi jumbo 15.000
di kedung doro
ok juga

Kamis, 27 September 2007

Lontong Balap

kemaren mam Lontong Balap. longtong plus kuah yang banyak >?? plus kecap manis terus ada toge,tahu goreng,terus gak tau apa yang dipecahin2 itu. Dan rasanya Ok juga, layak di makan> plus plus es degan
Ok sip.
sekalian mampir di BG junction

Minggu, 23 September 2007

Tempat SBY

Sabtu kemaren pergi bareng2 temen kos, di ajak muter2
aku lihat ada tempat nongkrong anak2 motor,
lokalisasi Bencong / Waria di Irian barat,
lokalisasi GAY di pinggir kali dekat DELTA,
pasar2,
gedung pemerintahan SBy,
stasiun Gudeng,
Kuburan bambu kuning,
welehh lengkap nich sby

Senin, 17 September 2007

KAMPOENG STEAK

Kemaren sore mam Steak, di kampung steak
harus pake celana panjang, kipas dan banyak nyamuk
so like that
BUT the price is gilla BEEF steak dan chicken steak hanya 7000 Rupiah, bayangkan
ada kentang , kacang panjang ,jagung
porsi sperti steak normalnya. LUMAYAN lah.. . .rasa ok lah
jus cuma 3500,avocado float dengan satu kop es krim diatas nya 6500

OK sip
makanan sini memang ada yang murah2
kalo murah murah ampe besar besaran

Senin, 10 September 2007

Dokter Gigi Surabaya

Kemaren aku pergi ke dokter gigi di deket sini.
temen kos bilang ada dokter gigi di dekat gereja... pas aku keliling memang ada dokter gigi di rumahan jl.raya satelit indah bn3. pas dateng katanya harus daftar dulu pasien baru, setelah itu saya mendaftar di susternya dan menanyakan harga menambal dan cabut . "Oh itu urusan sama dokternya" . Nah dengan memberanikan diri masuk, lalu ternyata membersihkan menggunakan banyak alat, laser dll, intinya aku itu cuma nambal 1 lubang. dan ternyata harganya 350.000 per lubang. bayangkan aku kira itu paling2 50rb sampe 150rb. lalu dokter menanyakan masih ada 2 lubang lagi kapan bikin janji ke sini, saya bilang ad Kartu nama engga? jadi tar saya yg menghubungi bila mau ke sini. wah wah wah , gile bener, pas pulang ternyata kata temen saya itu poliknik gigi itu di dalam gereja dgn harga hanya 80 rb. KUPRET
Gara2 dokter Gigi Jd musti irit makan Nich.
this is a lesson for me, no matter what you are planning shit happens. i've sufficient my self with certain money and transfer all the rest home to make sure that i don't go to Not right places, or too expense on not usefull things. but shit happens

Minggu, 09 September 2007

Spesial Belut Surabaya

Wah sudah coba
walaupun dagingnya ok tapi di pikiran jijik mulu
ga demen jadinya

Jumat, 07 September 2007

NExt to try

SBS spesial belut surabaya

Jumat, 31 Agustus 2007

Adjustment

Hmm. . . .
Ga nyangka juga ya bahasa SBY dan jawa berbeda..
aku kira apa e . .. e itu semacam logat ato apa tapi yang aku kira itu artinya apa nya?
beda sedikit aja , ,, dianggep kurang sopan.
apa e itu seperti manggil orang tanpa nama , mgkn apa hei?
ato apa he?
Geee. . . .
Disini ada yg namanya Nofanto , u can see on my friendster
Ga nyangka Orgnya Sensi juga kadang2
Jadi bingung . . . .
Maksud hati bercanda eh jadi nya gak lucu
Mang di sini agak berbeda. . .
ga kaya jakarta becanda nya open dan vulgar ... DIrect approach
di sini ada semacam filter = becanda tapi sopan mas. . . .. . . . . . .
Gee . . . .still amazed :)

Senin, 27 Agustus 2007

Makanan Surabaya

Tempe, Burung,Bebek, Ayam PENYET . . . .. 3000-10000 Makanan paling Umum
semuanya itu di taroh di mangkok ato apa yang berisi sambal dan minyak terus di bejek2
jadi PENYEK dong? Namanya juga PENYET

Tahu Tek
tek tek tek tek begitu bunyinya, tau2 pas makan itu tahu plus telur dadar di goreng, terus di campur kuah , yang kuat banget bau bawangnya. . . . . ampe besok pagi juga ga ilang baunya.

Martabak Telor Ayam, Sapi,Kornet, Jamur
Enak juga yang ayam. . . . . Kuahnya bukan yang cuka gitu ky di jkt, tapi asam manis

Kepiting Cah GUNDUL
katanya sih enak tapi belom pernah coba

Tawon - ini KEmbang tahu, kuahnya Jahe
gak enak 3ribu

Nasi KEdiri - Gwalk
lumayan lah

Tahu Crispy
tahu digoreng kulitnya itu bisa jadi garing banget banyak yg suka tapi g plg eneg liat tahu

Bubur jakarta

Mie Pangsit Masakan Medan - Ok lah tapi kok mahal ya

Nasi kari SOlo

Mealbox - TP , OK lah

When i'll be back to Jakarta

Tidak terasa sudah mau sebulan di SBY ini . . . .
Aduh kangen banget nich
sama keluarga , Girl Friend, and Keponakan
kapan ya. . waktu yang pas
cuti itu cuma bisa sehari sebulan
dan harus ngomong sebulan sebelumnya
dan gak boleh ambil 4 hari cuti sekaligus

Duh . . . .
gak mau jadi co ga bener di sby ini
banyak godaan nya . . . .. . . . . . . . .

mau pulang. . . . . . . . . . . . . . . . . . . .
Say . . . . . . . .. . . . . . . . . . .. . . . . . . . .

Hari hari gue di surabaya

Hallo,
Saya orang baru di surabaya
. .. . . . ...
working as senior .NEt developer
. .. . . . . . .
i think surabaya is nice
not so condansed > > like jkt
not so jammed > > like jkt
not full of ignorened people > > like jkt

But yes there are some downside
far away from my Girl Friend at JKT

i miss u
every day i miss u more and more
draining my Pulse /pulsa till it dry
but still can't replace u
can't reach u
i can imagine u and your face
still there' . .. . .
i miss u very very much