Andri Yadi

Butterfly Effect
See also: Other Geeks@INDC

April 2008 - Posts

The Full Report of Windows Live TTT, Bangkok - The Trip to Bangkok

WARNING!!! Before you open this posting, be prepared that this posting contains many photos that may slow down page loading. Banyak foto orang-orang good looking dan banci kamera yang bisa membuat Anda tergila-gila :) Juga banyak foto-foto yang belum mendapat persetujuan dari objek fotonya untuk dimuat di sini, sehingga ada kemungkinan nantinya untuk dihilangkan jika ada complaint dari yang bersangkutan. No animals are harmed in these photos :P

Semuanya berawal dari kira-kira awal Maret, mungkin tanggal 3 Maret 2008, ketika ngobrol dengan pak Risman tentang adanya Windows Live Training for Trainers (TTT) di Bangkok dan saya diajak sebagai salah satu peserta. Tentu saja sangat menyenangkan, karena bisa ikut training tentang teknologi baru dan memang kebetulan saya belum pernah ke luar negeri sebelumnya. Segeralah membuat passport, yang dari kapan tahun belum kesampaian untuk bikin. Peserta dari Indonesia adalah:

Pada beberapa posting sebelumnya, saya sudah sedikit menyinggung tentang materi yang diberikan dalam training tsb. However, those posting are lack of details about the things beside the training itself. Dalam posting ini dan beberapa posting ke depan saya ingin men-share full report tentang training tersebut, dimulai dari perjalanan berangkat ke Bangkok, selama di Bangkok, dan ketika perjalanan pulang. Karena saya bukan reporter, saya akan sampaikan report tsb dengan gaya bahasa sendiri. Posting pertama ini akan diceritakan tentang perjalan dari Indonesia sampai ke Bangkok, dan akhirnya sampai di Hotel.

Perjalanan dimulai dari Indonesia International Airport, Soekarno - Hatta. Keempat partners in crime berkumpul sekitar jam 17, 23 April 2008, di terminal D. Setelah semua berkumpul, dan karena perut mulai berontak, kami makan dulu di Mc*.

100_1220 100_1224

Notes: Karena adanya kesalahan setting date pada camera saya, beberapa foto pada tgl 23 April ini jadinya ter-stamp tanggal 29 April.

Setelah makan, langsung menuju loket check in, lalu bayar fiskal dulu. Honestly, gue gak tahu apa itu fiskal dan untuk apa uangnya, somebody please explain to me. After that, kami langsung berjalan menuju ruang tunggu. Dalam perjalanan ke ruang tunggu, sempat singgah dulu ke toko rokok karena dikhawatirkan nggak ada rokok Indonesia di Bangkok. Saya sendiri kebetulan udah prepare rokok dari Bandung karena pasti susah mencari rokok A M*** di Bangkok.

100_1228

Lagi cari-cari rokok. Sorry banyak iklan.

Around 6.40 pm, we're all aboard to Thai Airways airplane. Sambutan hangat dari pramugari Thailand dengan sebuah ucapan yang nggak tahu apa itu, segera menghampiri begitu memasuki pesawat. Inilah para banci kamera berfoto ria di dalam pesawat :)

100_1235 100_1234

Tidak seperti penerbangan domestik, di dalam penerbangan kali ini kami menemui banyak (lebih dari 4) pramugari Thailand yang cantik.

100_1248

Dengan keberanian yang tinggi, saya memutuskan untuk berfoto bersama dengan seorang pramugari. Di awali dengan pertanyaan "May I take a picture with you?", pramugari itupun mengangguk dan segera berpose manis. Keren nggak bo'?

100_1249

Pesawatpun take off sekitar jam 6.50pm. Inilah beberapa foto selama penerbangan:

100_1272 100_1271

Beberapa tertidur pulas setelah meneguk segelas *****

100_1260

Coba tebak kepala siapa ini? :)

100_1269

Almost there

Dan sampailah kami di Airport Suvarnabhumi, Bangkok, dengan selamat. Kemudian langsung naik bus menuju terminal kedatangan internasional.

100_1283 100_1282

Setelah memasuki terminal kedatangan, kami berjalan menuju loket Passport Control sebelum bisa memasuki Bangkok. Sempat berfoto dulu di depan patung yang gede banget, nggak tahu patung apa itu.

100_1293

Setelah sampai di depan loket Passport Control, langsung mengantri dan mulailah pemeriksaan satu persatu.

100_1298 100_1297

Semuanya lolos passport control, walaupun salah satu dari kami berempat ada yang berjenggot cukup lebat :) Kalau nggak lolos bisa-bisa kejadian terperangkap di daerah internasional kayak di film The Terminal, the most expensive romantic comedy movie ever made, by Steven Spielberg.

Setelah lolos dari Passport Control, kami berjalan menuju ke luar airport sambil mencari jemputan dari hotel. Setelah ketemu jemputannya, nggak lama kemudian naik van, dan mulailah perjalanan menuju Hotel.

Setelah kurang lebih 30 menit perjalanan dari airport ke hotel, sampailah kami di Unico Grande Asoke Hotel, tempat kami menginap selama 3 hari ke depan. Setelah check in, tanpa basa basi, langsung menuju M2 Cafe untuk makan malam. Saatnya menikmati the delicious Thailand's Tom Yam.

100_1327

Tasting the spicy Tom Yam

Lagi-lagi dengan keberanian dan charming saya, saya berhasil meminta waitress di cafe itu untuk berfoto bersama :)

100_1326

Sama-sama berbaju hitam, kayaknya udah janjian nih...Sepertinya pasangan serasi :)

Setelah makan, enaknya sih smoking. But unfortunately, you can't smoke inside a AC room anywhere in Thailand, including in bar, club, etc. So, we decide directly go to hotel room.

Kamarnya ok banget, selayaknya hotel bintang 4. Berikut beberapa foto di dalam kamar.

100_1328 100_1331

100_1333 100_1345

There're even some c*nd*ms available here. Kayaknya memang hal-hal yang berkaitan dengan s*x udah biasa di sini.

Tanpa mandi dan basa-basi, saatnya merebahkan diri di kasur yang empuk setelah perjalanan yang melelahkan.

Demikian posting pertama ini tentang perjalanan dari Indonesia ke Bangkok. Next posting akan berbicara tentang hal-hal yang terjadi selama training.

Just stay tune!!!

Share this post: | | | |
#1 Souvenir from Bangkok - Messenger Presence API

Since I can't bring "oleh-oleh" for you all guys, all I can give is knowledge about what I get from Windows Live Training in Bangkok, April 24 - 25, 2007, CTT Training Center. I'll post as many as possible about that. The first series is what I learn today, Messenger Presence API.

Lets say you want to display your Windows Live Messenger status on the web. It's useful lets say for displaying your company's customer support, whether they're online or not. Something like these images below.

If you're not login/offline

image

After login & online

image

The status become:

image

How do I can make that functionality using Presence API in Windows Live?

1. Off course open your VS, I use VS 2008

2. Create new web site

3. Create a webform or HTML page that contains code like this:

<%@ Page Language="C#" AutoEventWireup="true"%>
 
<!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 runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="http://settings.messenger.live.com/applications/websignup.aspx?returnurl=http://localhost:50000/MessengerPresence/showmypresence.aspx&privacyurl=http://localhost:50000/MessengerPresence/privacy.htm">Show My Presence</asp:HyperLink>
    
    </div>
    </form>
</body>
</html>

Take a look at the url: http://settings.messenger.live.com/applications/websignup.aspx?
returnurl=http://localhost:50000/MessengerPresence/showmypresence.aspx&privacyurl=
http://localhost:50000/MessengerPresence/privacy.htm

If you click on that URL, it will lead us to this page below

image

After you login, you should see this setting page. Off course, you need to have Windows Live ID first.

image

This step actually is for enabling the access of our presence status. Since Windows Live is very concern to our privacy, the access of presence status is disabled by default. We just enable this one time, next time this step is unnecessary. You can go back to that setting page to disable the access.

Lets get back to the URL. That URL contains two paramaters:

  • returnurl: the URL of your page that receive the result of presence query.
  • privacyurl: the URL of page that displays privacy information. This page must be created but the content can be blank, but it's suggested that you display some texts about commitment of protecting user privacy in this page.

Now, we create those two pages.

4. Create showmypresence.aspx & showmypresence.aspx.cs (code behind)

showmypresence.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="showmypresence.aspx.cs" Inherits="showmypresence" %>
 
<!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 runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript" language="javascript">
        function showpresence(presence) {
            var innerFrame = document.getElementById('innerFrame');
            
            var statusIcon = document.createElement('img');
            statusIcon.style.border = 'none';
            statusIcon.src = presence.icon.url;
            
            var dispName = document.createElement('span');
            dispName.title = presence.displayName
            dispName.innerText = presence.displayName;
            
            var statusText = document.createElement('span');
            statusText.title = presence.statusText;
            statusText.innerText = presence.statusText;
            
            var br = document.createElement('br');
            
            innerFrame.appendChild(statusIcon);
            innerFrame.appendChild(dispName);
            innerFrame.appendChild(br);
            innerFrame.appendChild(statusText);
            
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label_Result" runat="server" Text="Label"></asp:Label><br />
        
        <div id="innerFrame" style="border:solid 1px #cccccc; text-align:center; width:100px;" />
    </div>
    </form>
</body>
</html>

showmypresence.aspx.cs

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Specialized;
 
public partial class showmypresence : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string res = "";
        string userid = "";
 
        NameValueCollection returnParams = Request.QueryString;
        for (int i = 0; i < returnParams.Count; i++)
        {
            string nextKey = returnParams.AllKeysIdea;
            if (nextKey == "result")
                res = returnParamsIdea;
            else if (nextKey == "id")
                userid = returnParamsIdea;
        }
 
        if (res != "Accepted")
        {
            if (res == "Declined")
            {
                Label_Result.Text = "[" + res + "]" + " --> Declined";
            }
            else if (res == "NoPrivacyUrl")
            {
                Label_Result.Text = "[" + res + "]" + " --> No Privacy URL supplied";
            }
        }
        else if ((res == "Accepted") && (userid != null))
        {
            Session["Result"] = res;
            Session["Id"] = userid;
 
            Label_Result.Text = "Result: " + res + ", User ID: " + userid;
 
            string scriptTmplt = "http://messenger.services.live.com/users/{0}/{1}/?{2}";
            string scriptUrl = string.Format(scriptTmplt, userid, "presence", "cb=showpresence");
 
            string script = "<script type=\"text/javascript\" language=\"javascript\" src=\"" + 
scriptUrl + "\"></script>";
 
            ClientScript.RegisterStartupScript(typeof(showmypresence), "msgScript", script);
        }
    }
}

 

5. Create privacy.html file, something like this:

<!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>Untitled Page</title>
</head>
<body>
    Your primacy is safe..
</body>
</html>

 

Now, your presence status can be displayed using URL:

http://localhost:50000/MessengerPresence/showmypresence.aspx?
result=Accepted&id=cbe0e395b6f9491@apps.messenger.live.com

Tips:

At web site property, set use dynamic port to false and set static port:

image

That's it. Have a nice try.

Look at the attachment for complete source code.

These are the photos of the day...

100_1483-r

Sorry Ben...just kidding..no intention to harm you :) You're a good trainer. Wish the topics can be deeper.

100_1484-r

"Pak Camat" & Ben William :)

100_1469-r

The great foods. Serem amat bos Ris...

100_1491-r

Naren explores the city...Are looking at "lady boy" ren? :P

Share this post: | | | |
Day 2 - Training in Bangkok

OK, back to class. Still being sleepy after exhaustive night last night, but got to back to what I come for.

The first speaker is Geert Desager, from Singapore. He presents about how advertising media is changing rite now. There'll be no more billboard in the future, all will be replaced by digital media. That's what one of Windows Live platform comes for. He also speaks about how youngster are changing and we can reach them through media.

The next agenda is back to technical stuffs, continued by Ben (the first day speaker). He starts with Windows Live Data. I'll take about this later, need get back to give attention :)

Share this post: | | | |
Day 1 - Training in Bangkok

Currently, I'm writing this blog while the trainer gives an introduction about himself & what we'll do all these 2 days.

The trainer is: Ben William. His blog is: http://blogs.msdn.com/benwilli

That's all for starting. I'll blog more about this.

Updated: Testing using Silverlight Streaming Services.

More details about other technologies and stories we learn during this first day, please refers to these postings:

Updated: Trying Messenger IM Control

Share this post: | | | |
Save Excel Workbook to Server using VSTO v3

Tadi sempat ketiduran dan terbangun tiba-tiba karena mimpi yang aneh. Akibatnya sekarang darah belum lancar naik ke otak sehingga belum bisa mikir yang berat2. Sambil nunggu booting otak selesai, nge-blog yang simple dulu ah...

Tadi sore sempat bikin fungsionalitas sederhana untuk Excel menggunakan VSTO v3. Ada keperluan untuk menyimpan current Excel workbook to web server via web services, which can be accessed directly from Excel Ribbon. Gue kasih bonus buat export workbook to PDF.

1. Create a Web Service contains one web method to receive and save Excel file to web server.

    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class ExcelFileServices : System.Web.Services.WebService
    {
        private string uploadPath = "~/Uploads";
 
        public ExcelFileServices()
        {
            if (!String.IsNullOrEmpty(ConfigurationManager.AppSettings["ExcelUploadPath"]))
            {
                uploadPath = ConfigurationManager.AppSettings["ExcelUploadPath"];
            }
        }
 
        [WebMethod(Description = "Upload Excel File")]
        public bool UploadExcelFile(string fileName, byte[] fileBytes)
        {
            //First, check the extension of uploaded file name
            if ((fileName.Substring((fileName.Length - 3), 3).ToLower() != "xls") 
            && (fileName.Substring((fileName.Length - 4), 4).ToLower() != "xlsx") 
            && (fileName.Substring((fileName.Length - 3), 3).ToLower() != "pdf"))
            {
                //return false;
                throw new SoapException("Uploaded file (" + fileName + ") is not allowed", 
                                        SoapException.ServerFaultCode);
            }
 
            //File savedFile;
            //StreamWriter streamWriter;
            FileStream fileStream = null;
            string savedFilePath = Server.MapPath(uploadPath + "/" + fileName);
            try
            {
                fileStream = File.Open(savedFilePath, FileMode.Create, FileAccess.Write);
                int fileBytesLength = fileBytes.Length;
 
                fileStream.Write(fileBytes, 0, fileBytesLength);
                fileStream.Flush();
                fileStream.Close();
                return true;
            }
            catch (UnauthorizedAccessException ex)
            {
                //return false;
                throw new SoapException(ex.Message, SoapException.ServerFaultCode);
            }
            catch (Exception ex)
            {
                //return false;
                throw new SoapException(ex.Message, SoapException.ServerFaultCode);
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                }
            }
        }
    }

2. Create New Excel 2007 project, workbook or add-in, I use workbook. Add New Item -> choose Ribbon (Visual Designer). Add two button so they look like below.

image

3. Add Web Reference to previously created web service, name it: ExcelFileServices

4. Add SaveFileDialog control to ribbon, name it: saveFileDialog_ExportToPDF

5. Double click to each button, add following code.

        private void button_ExportToPDF_Click(object sender, RibbonControlEventArgs e)
        {
            String filename = "Default filename.pdf";
            saveFileDialog_ExportToPDF.DefaultExt = "*.PDF";
            saveFileDialog_ExportToPDF.FileName = filename;
            DialogResult result = saveFileDialog_ExportToPDF.ShowDialog();
            if (result == DialogResult.OK)
            {
                filename = saveFileDialog_ExportToPDF.FileName;
 
                System.Threading.ThreadPool.QueueUserWorkItem((delegate(object arg)
                {
                    Globals.ThisWorkbook.ExportAsFixedFormat(
                        Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, 
                        filename, 
                        Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard, 
                        true, true, Type.Missing, Type.Missing, true, Type.Missing);
                }), null);
            }
        }
 
        private void button_SaveFileToServer_Click(object sender, RibbonControlEventArgs e)
        {
            //Get filename & format
            string sFileName = (string)Globals.ThisWorkbook.Application.GetSaveAsFilename(
                               "Default filename", 
                               "Excel 97-2003 Workbook (*.xls), *.xls, Excel Workbook (*.xlsx), " + 
                               "*.xlsx, PDF (*.pdf), *.pdf", 
                               Type.Missing, "Type file name and select extension", 
                               Type.Missing).ToString();
            //Save to selected format in local drive temporarily
            if (sFileName.ToLower().EndsWith(".xlsx"))
            {
                Globals.ThisWorkbook.SaveAs(sFileName, 
                                            Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook, 
                                            Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
                                            Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, 
                                            Type.Missing, true, Type.Missing, Type.Missing, Type.Missing);
            }
            else if (sFileName.ToLower().EndsWith(".xls"))
            {
                Globals.ThisWorkbook.SaveAs(sFileName, 
                                            Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, 
                                            Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
                                            Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, 
                                            Type.Missing, true, Type.Missing, Type.Missing, Type.Missing);
            }
            else if (sFileName.ToLower().EndsWith(".pdf"))
            {
                Globals.ThisWorkbook.ExportAsFixedFormat(
                             Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, 
                             sFileName, 
                             Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard, 
                             true, true, Type.Missing, Type.Missing, false, Type.Missing);
            }
            //Upload Thread
            System.Threading.ThreadPool.QueueUserWorkItem((delegate(object arg)
            {
                System.IO.FileInfo fi = new System.IO.FileInfo(sFileName);
 
                try
                {
                    byte[] bytes = null;
                    using (System.IO.FileStream fs = fi.Open(System.IO.FileMode.Open, 
                                                             System.IO.FileAccess.Read))
                    {
                        bytes = new byte[fs.Length];
                        int readBytes = fs.Read(bytes, 0, (int)fs.Length);
                    }
                    if (bytes == null)
                    {
                        return;
                    }
 
                    ExcelFileServices.ExcelFileServices srv = new ExcelFileServices.ExcelFileServices();
                    srv.UploadExcelFile(fi.Name, bytes);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "File Saving Error", MessageBoxButtons.OK, 
                                    MessageBoxIcon.Error);
                    return;
                }
                //try to delete
                try
                {
                    fi.Delete();
                }
                catch { }
 
                MessageBox.Show("File is successfully saved to server", "Success", 
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }), null);
        }
 

That's it. Mudah2an berhasil :) The code should be self describing.

Please note:

    1. I know, this code is not optimal. File sending via web service can be improved using WCF or MTOM in Web Services Enhancement (WSE). The sending process can be done byte by byte.
    2. To be able to export to PDF, you must install SaveAsPDFandXPS.exe that can be downloaded from Microsoft website (forget the link).

    It's time to get back to work. Sepertinya otak gue udah selesai booting.

    Share this post: | | | |
    Posted: Apr 16 2008, 01:43 AM by andriyadi | with 8 comment(s)
    Filed under:
    The Worst Accident I've Ever Had

    It's all started by an invitation to attend a meeting at MSI, Jakarta on Thursday, April 10, 2007, one day after my birthday (ini gak bermaksud nyalahin yang ngundang rapatnya lho, cuman supaya jelas aja kronologis kejadiannya :D). Pagi, sekitar jam 9, saya berangkat dari kantor untuk mampir ke bengkel, tune up dulu sebentar. Lalu sekitar jam 11, dari bengkel langsung menuju pintu tol Pasteur untuk bergegas ke Jakarta. Memang harus agak buru2 karena rapatnya jam 14.

    Hari itu seperti hari biasanya. Tidak ada perasaan atau precognition that something bad will happen. Hari itu saya menyetir seperti biasa, agak ngebut dikit, 140 km/jam top. Semuanya lancar sampai suatu saat di sekitar daerah Bekasi Barat, kira2 15 km sebelum masuk Jakarta. Tiba-tiba dari arah kanan ada sebuah bus (nggak ingat bus apa, kalau ingat pasti gw tuntut) nyelonong dan menyalip mobil saya menuju ke arah kiri tanpa peringatan lampu sein. Sementara di sebelah kiri ada sebuah truck. Saya langsung mengerem mendadak, ban mendadak berhenti, tapi mobil masih bergerak dan terjadi perlambatan dari kecepatan awal kira-kira 100 km/jam menjadi sekitar 40 km/jam dalam selang waktu sekitar 5 detik. Setelah berusaha mengelak akhirnya tetap terjadi...booom...bagian depan kanan mobil saya masih mengenai pantat bus tsb. Mobil saya sempat berputar lebih dari 360 derajat seperti di film dan terhenti dalam keadaan melintang. Fortunately, nggak ada mobil di belakang mobil saya sebelum terjadi tumbukan. Busnya sendiri langsung kabur entah kemana. Sudahlah...relakan saja.

    Pertanyaannya, berapakah impulse yang dialami mobil saya pada saat tumbukan?

    "In classical mechanics, an impulse is defined as the integral of a force with respect to time".

    Begini ilustrasi kejadian na'as tsb:

    Accident Illustration Fig

    Diketahui:

    • Massa BMW 320i E36 = 1270 kg
    • Pengurangan kecepatan sebelum tumbukan dari 100km/jam menjadi sekitar 40 km/jam

    Ditanyakan: Berapa impulse yang dialami mobil saya?

    Solusi:

    \mathbf{I} = \mathbf{F}\Delta t = m \Delta \mathbf{v} = \Delta\ p

    I = 1270 kg x (100 km/h - 40 km/h) = 1270 kg x 60 km/h = 1270 kg x 16,67 m/s = 21166,67 N.s

    Sehingga, pada saat tumbukan mobil saya mengalami impulse 21166,67 N.s

     

    Alhasil, bagian depan kanan mobil hancur berat. Berikut ini hasil jepretannya:

    IMAG0066

    IMAG0068

    IMAG0071-m

    Seperti terlihat pada gambar, daftar kerusakannya:

    • Kap mesin terlipat pada ujung kanan dan penyok gak jelas
    • Bagian kanan depan (nggak tahu namanya) hancur ujung depannya
    • Front grill penyok
    • Front Bumper robek dan penyok
    • Lampu kanan rusak berat
    • Lampu sein kanan hancur lebur tak bersisa

    Semua komponen di atas harus diganti. Walaupun kap mesin masih bisa diketok magic, tapi pasti tidak akan kembali normal 100% dan fungsinya untuk melindungi pasti akan berkurang. Walaupun hanya bagian kanan yang terlibat dalam tumbukan, tapi bagian kiri mobil ikut penyok dikit karena ada tekanan yang hebat dari sisi kanan.

    Untungnya, (dasar orang Indonesia, masih aja ada untungnya :D):

    • Saya sendiri nggak cidera sedikitpun, Thanks God and BMW
    • Semua bagian mesin utuh, hanya ada komponen dari plastik yang pecah dan masih bisa diperbaiki. Kalau sampai ada yang rusak, mampuslah gw.
    • Velg dan ban kanan depan nggak apa-apa. Velg + ban bisa seharga 2 - 3 juta.
    • Fog lamp kanan juga nggak apa-apa, lumayan juga harga lampu ini.

     

    Itulah cerita na'as yang saya alami hari kamis, 10 April 2008 kemarin. Ironis, baru satu hari setelah hari Ultah saya, terjadi sebuah kecelakaan terbesar dalam hidup saya. Apakah ini pertanda bahwa bad things will happen dalam setahun ke depan dalam hidup saya, hopefully not.

    What I've learned from this accident:

    • Be more careful. Terkadang saya memang sering ngebut di jalan tol, walaupun masih dalam taraf ngebut yang smart :) Tapi tetap harus lebih hati2 lagi. Mudah2an nggak trauma nyetir nih.
    • Jangan buru2. Kadang-kadang karena "mengejar waktu", jadinya kita buru2. Next time, time estimation must be improved.
    • Thanks to BMW for making a such great safe car. Dengan impact yang cukup besar, hanya bagian yang terkena impact yang hancur, dampak pada bagian lain cukup kecil dan keselamatan sopir dan penumpang tetap terjaga. Kalau kecelakaan kemarin terjadi pada mobil Jepang, nggak tahu apa jadinya.
    • Lebih menghargai hidup. Life is uncertain, many simple things can lead to disaster. As long as we live, use the time wisely.
    • Harus berhemat beberapa bulan ke depan. Biaya perbaikannya lumayan banget. Kencangkan ikat pinggang. Bagi yang minta ditraktir makan-makan (karena alasan apapun, entah karena gw ultah or alasan lain :D) mohon bersabar. Makan2nya d-pending sampai saya menemukan sumber dana untuk menutupi biaya perbaikan tsb :)

    Saya minta doanya kepada teman-teman supaya saya tetap sabar, tetap bersyukur, mendapat hikmah dari kejadian ini, dan dapat rezeki untuk menutupi biaya perbaikan :) Thanks.

    Share this post: | | | |
    Posted: Apr 12 2008, 11:17 AM by andriyadi | with 6 comment(s)
    Filed under: ,
    A Quarter Century + 1

    Thanks to Almighty God for giving this great 26 years life. Since 28 hours ago I've been a quarter century + 1 years old. Damn...I'm old. Feel like yesterday I still learn Quantum Physics in my undergraduate study and still not knowing what I wanna do in my life. Life is so fast, it passes and will end before you know it.

    They say, 25 years is a determination age. Whether someone is success or not quite success, can be determined in his/her 25 years old. Well, my 25 years has passed, then what have I done or achieved? Hmmm...that's a big question. Lets rewind my life for the last one year.

    The biggest thing I've done during my 25 years old is DyCode. It took a huge courage for me to resign from my (own) previous company along with my division team.  Leaving a company that has been also raised by myself for 2.5 years is a big decision. Then at May 9, 2007, I founded DyCode - that I've conceived for almost one year before - along with 5 other founders, that later became 3 founders left of the original 6. Next things DyCode and me have achieved are the subsequent consequences of that big action. Sometime in life, we are faced to a hard and big decision, that actually can determine the good things we'll have ahead in the future.

    Lets recaps what I've got so far in my 26 years life.

    • I've become a CEO at 25 years old. Faster and younger than I expected.
    • Become quite famous lately that I've never imagined before in my life. Refer to this posting.
    • I can take DyCode to a level that can't be done during 2.5 years in my previous company. I can do it within less than one year.
    • Lead DyCode to win some awards. 
    • I'm not married yet, which is a good and bad thing. The good thing is I can be focus & dedicated to what I do. The bad thing is...kagak nahan... :)

    So, whether I'm success or not, I don't know, you tell me :)

    Ok, enough rewinding my life, lets focus to the future. What things I wish for next one year? Here are some of them:

    Related to business:

    • Launch new product/service on the net. Just wait...it's a top secret project :) and I research for it by my self and it took my time frustratingly lately.
    • Add some new developers & business analyst. We're also recruiting for Public Relationship (PR). Anybody interested? Send your CV to my email: andri at dycode dot com
    • Move to bigger office
    • Expand to overseas
    • More focused business
    • More research and have a dedicated research team
    • More exist & dynamic

    For myself:

    • Have more holidays since I haven't had long holidays since 2004. Everyday is a workday since 4 years ago...huh...so tired
    • Make me more useful for others, more contribution to community
    • Have new hobby, maybe AirSoft Gun.
    • Quit smoking...hmmm...is that even possible?
    • Go abroad few times, maybe Europe or US :P~
    • Wait for iPhone 2.0 :)
    • What about a newer beamer..that's a good idea :)

     

    What I've learned so far in my life?

    • Life is uncertain, like Heisenberg's Uncertainty Principle: \scriptstyle \Delta P \ge \hbar /(2\Delta X) that states: locating a particle in a small region of space makes the momentum of the particle uncertain; and conversely. Given a certain momentum, we can be end up anywhere. And at any given point in life, we can't be certain about specific momentum. So, from my point of view, we are always faced to crossroad in life. A choice can lead to unexpected result. By the guidance from the Almighty and the intuition those can show us the better way.
    • Knowing that someday we're gonna die makes us not afraid of losing anything. So, don't be afraid to take risks and make some big decision in life. Someday we're gonna die and we have nothing to lose. Life is too short to be lived with some things those we don't wanna do or we don't want to be. Quit living others' life and start our own life.
    • Easy doesn't enter grownup life.
    • Nothing, literally, nothing comes for free. If something comes too easy, we have to be suspicious that will lead to something we don't expect. Nothing comes too easy.
    • In Physics, the law of conservation of energy states that the total amount of energy in any isolated system remains constant. The energy can not be created or destroyed, it can only be changed from one form to another. Go figure out by yourself what's its relation to life :) From my point of view, energy involved in an isolated system called life is also conserved. Energy from your food can be transformed into kinetic energy to pump the blood that at the end will power up your brain to solve Algorithm and move your hand and finger to do coding. Some of that energy will be released as heat energy of your head and your puff  :P So, the total energy will be conserved. No energy we can create, all we can do is to increase the efficiency to make useful energy bigger than not useful energy, so the efficiency will close to 100%. Kayak gak nyambung ya ;)

    OK, enough for life philosophic lesson :) and it's now the time to continue my life. Please wish me luck for my 26 years birthday and hopefully I spend the rest of my life wisely. Thanks God and you all.

    As the closing, this is the photo of birthday cake that's presented by someone special..Hmm...yummmy...

    100_1105-r

    Share this post: | | | |
    Posted: Apr 10 2008, 03:59 AM by andriyadi | with 10 comment(s)
    Filed under:
    Get Famous?

    With no intention to be narcissism, in this posting I want to share about being covered by several local media.

    Within the last one month, my company, DyCode, and me, Andri Yadi, were suddenly quite famous in a good way. Either being interviewed by some journalists (even a journalist from Washington Post, check the story here), or being published on several newspapers and online media. It's all triggered by winning a business solution innovation contest called iMULAi on Feb 26, 2007 ago (You can refer to this posting about the event details). After that day, many IT and non IT-related newspapers and online media published some news about the iMULAi event and off course the winners, including DyCode. Quite sometime after that booming, two journalists from Seputar Indonesia newspaper and PC Media, came to DyCode office to cover story about DyCode and PORTMAP, the iMULAi award-winning business solution.

    All this time I've collected some links to online news those published about iMULAi & DyCode. Sorry for publishing these old stories, I just have time now. Here they are:

    detikinet.com - Tiga Inovator Juarai iMulai
    http://www.detikinet.com/index.php/detik.read/tahun/2008/bulan/02/tgl/26/time/143715/idnews/900217/idkanal/319

    detikinet.com - Tiga Juara iMulai Diharapkan 'Bersatu'
    http://www.detikinet.com/index.php/detik.read/tahun/2008/bulan/02/tgl/26/time/160007/idnews/900308/idkanal/319

    Kompas Tekno - Tiga Pengembang Software Menangkan Hibah Rp1 Miliar
    http://www.kompas.com/tekno/read.php?cnt=.xml.2008.02.26.15072592&channel=1&mn=114&idx=114

    Kompas Tekno - Memupuk Bibit-bibit Raksasa Software
    http://www.kompas.com/tekno/read.php?cnt=.xml.2008.02.29.23125852&channel=7&mn=115&idx=115

    KompasTV - Berita  Bisnis  Aplikasi Inovatif Karya Anak Negeri
    http://tv.kompas.com/berita/bisnis/aplikasi_inovatif_karya_anak_negeri_.html

    KompasTV

    Republika Online - Tiga Lembaga Juarai Kompetisi iMULAi
    http://www.republika.co.id/online_detail.asp?id=324967&kat_id=23

    Antara News - Microsoft Indonesia dan SENADA Umumkan Tiga Pemenang Kompetisi iMulai
    http://www.antara.co.id/arc/2008/2/26/microsoft-indonesia-dan-senada-umumkan-tiga-pemenang-kompetisi-imulai/

    Bisnis Indonesia Online - iMulai pilih 3 pemenang
    http://web.bisnis.com/edisi-cetak/edisi-harian/teknologi-informasi/1id46057.html

    Media Indonesia Online - Microsoft Indonesia Umumkan Tiga Pemenang Kompetisi iMULAi
    http://www.mediaindonesia.com/berita.asp?id=160752

    Innovation at the Frontier - Microsoft Indonesia Announced The First Three Winner of iMULAi Competition
    http://innovationfrontier.blogspot.com/2008_02_01_archive.html

    Biskom - Tiga Aplikasi Inovatif Menangkan Kompetisi iMulai
    http://www.biskom.web.id/2008/02/27/tiga-aplikasi-inovatif-menangkan-kompetisi-imulai.bwi/

    imulai.JPG

    BinaISV.net - Pemenang iMULAi
    http://binaisv.net/blogs/sample_weblog/archive/2008/02/27/pemenang-imulai.aspx

    Harian Terbit - Microsoft Umumkan Tiga pemenang iMULAi
    http://www.harianterbit.com/artikel/info/artikel.php?aid=39147

    Indonesian Circle - Dycode Cominfotech Menang Kompetisi iMulai
    http://indocir.com/id/dycode_cominfotech_menang_kompetisi_imulai

    Indocommit.com - Dycode Bidik Pelindo
    http://indocommit.com/indexpage.html?menu=29&idnews=7186&kid=0


    Hopefully all those links are still live. Please check those out.

     

    Koran SINDO

    Seputar Indonesia newspaper or also known as Koran SINDO also write about DyCode and publish the article on March 12, 2008, at page 30, Techno category.

    Here is the article capture. You can get the full page in PDF format at: http://dycode.com/files/folders/corporate/entry108.aspx

    Capture

     

    Two Full Pages on DUIT! Magazine

    Surprisingly, 5 days ago I'm told that an entrepreneur-related magazine called DUIT! published an article about me and DyCode on its March - April 2008 edition. The article is two full pages length and contains quite complete story about DyCode and me, with two color photos depicted me being standing charmingly :) and receiving iMULAi award. Don't be laugh with the magazine name, it's a famous entrepreneur and franchise-related magazine. With no intention to promote the magazine, please buy it and read the story :) I my self buy three of it.

    Just in case you don't believe what I say, here are some photos:

    DUIT! Cover 

    Magazine Cover

    As you can see, the magazine said I'm a success young rebel. I'm a young rebel? well, yes I'm still 25 years old and have trouble with following rules. Success? not really, many more things to achieve.

    DUIT! TOC

    Table of content

    The article can be found at page 80, continued to page 82. To whom it may concern, please don't get upset with the article's title. Honestly, I don't know why the title is like that. I never imply something like that. I'd like to confirm that it's not entirely true. More precisely, Microsoft Indonesia does use our service to build their developer online communities like binaisv.net, wss-id.org, etc (thx to Reza for his great works while he's in DyCode), KOPASSUS Profile Management System, and hopefully more to come :), not Microsoft as a whole or Microsoft Corporation.

    iMulai_Duit_Maret-April08_h80

    Page 80 - What a good looking guy, right :P Maybe someday I will change my carrier to be a model :) so narcissistic

    iMulai_Duit_Maret-April08_h82

    Page 82 - Handshaking and taking picture with some big guys :)

    Generally, the story in this magazine is good and complete, although there're things not really true. Anyway, thanks so much to DUIT! Magazine and the journalist for writing a good article and to the photographer for taking some nice photos :)

     

    To close this posting, I want to say that how happy and proud I am for what we've done. I've never been at this point in my entire life. Being graduated *** laude or other achievements are nothing compared to this famous thing. A year ago, I personally, DyCoders, and DyCode itself were nobody. Now, well...I think we're quite somebody, even still not as famous as Bill Gate or Steve Jobs :) but it is not that impossible to be like them, right?

    One thing for sure, this famous thing won't make us big headed and forget who we are. We'll keep fighting, dynamic, early technology adopting, and innovative. Hopefully, more things we can do in the future and more great news from us. Just stay tune :)

    Many thanks to everybody that has been very supportive to us all this time and makes all these things possible.

    Please don't consider this posting as a narcissistic story, but consider it to be some kind of trigger. No matter how small we are, we still can do and be something great.

    Share this post: | | | |