[Windows 7] Add New Command in RUN command

Run command has always been a very useful interface to make shortcut to favorite programs. I often type “mstsc” for remote desktop connection, “notepad” when I have to note something in hurry, and “cmd” to use command prompt.

well windows + R is really useful for every cases where you are too lazy to move your mouse and just want to type it quickly (yes, I am lazy) and so customizing and adding other favorite program in run command can make my work even more faster 🙂

Lets start by using an example program “Putty”. Putty is a telnet\ssh client and I often use it to connect to a server in Universitas Indonesia (e.g. kawung). This program folder is located in C:\Users\[Username]\Desktop\#APP\putty

The process is very simple, just open the Start > Right Click on Computer > Properties

And select Advance System Settings on the left tray > Advance Tab > Environmental Variable

Select Path in System variables and click Edit…

in the textbox variable value, don’t forget to insert “;” if there are already other paths written, after that you just have to copy paste the program address and click OK

Voila, very simple I guess, after that you can test it by type win + R and type putty.exe on the textbox and enter.

琥珀色の記憶(Kohakuiro no kioku)

Amber Shade Memory, Often played in” こんな素敵な日本が” in NHK

“Kohakuiro No Kioku” (composed by Toshiaki Matsumoto) – Piano Instrumental from Toshiaki Matsumoto’s 3rd album “Pianoia”. Theme from NHK “Konna Sutekina Nippon Ga” (Japanese TV program).”

Pemain : sweetmelody602

Lagu ini membuat saya terharu dan takjub dengan composer yang dapat membuat lagu seperti ini

Pemainnya juga mengekspresikan lagunya dengan baik dan sangat menyentuh

Arti dari  Kohakuiro no kioku atau Amber Shade Memory dalam bahasa indonesia adalah “Kenangan berwarna Amber”,

Lagu ini dipakai dalam acara こんな素敵な日本が yang berarti “This Beautiful Japan”, suatu acara yang memperlihatkan keindahan Jepang dari yang paling terpencil hingga paling terlihat, dalam lagu ini dapat dirasakan jiwa Nasionalisme yang tinggi terhadap negara kampung halamannya.

Definisi Amber dapat berbagai macam, salah satunya yaitu dari bahasa sanskrit yang berarti “langit” pada link di bawah ini

http://www.thinkbabynames.com/meaning/0/Amber

“Kenangan berwarna langit”

[vi command] Replace the second occurrence of strings in a line

Vieitor

Hello, everyone

Today I wanna share a bit about a Vi command that have been discussed on The System Programming Class today,

The Vi command that I am going to talk about is the Replace command built in Vi, below is the simple example of Replace command :

s/<string1>/<string2>

ex: s/Menye/Unyu

string1 is the string that we want to match, if the string1 is found, string1 will be replaced with string2. We can also write in another form with flags like :

s/<string1>/<string2>/<flag>

ex: s/Menye/Unyu/gc

Above command will replace string “Menye” with “Unyu”” but due to “c” flag, computer will ask user to confirm each matched items whether to be replaced or not.

Enough the intro, today’s class main challenge is using regex with replace command, for example if there are strings like this :

microsoft windows microsoft windows microsoft windows microsoft

microsoft windows microsoft windows microsoft windows microsoft

and if we want to replace the second occurrence of “microsoft” with “macrohard” each line, we could use some manipulation of regex as the solution (detail of regex can be found vastly in internet),

:1,$s/microsoft.\{-}\zsmicrosoft/macrohard

and the output will look like this

microsoft windows macrohard windows microsoft windows microsoft

microsoft windows macrohard windows microsoft windows microsoft

If you want to replace the third occurrence instead of the second one, you can easily change the command like this :

:1,$s/microsoft.\{-}microsoft.\{-}\zsmicrosoft/macrohard

There are a lot of ways to do in Vi to reach a same goal, so experimenting is the best practice from what I’ve been through all this time,

Good luck 😉

My campus, my home, and newcomers

Fasilkom (4)

Setiap hari saya duduk di depan komputer saya mengerjakan sesuatu dari yang jelas sampai yang tidak jelas, kadang sambil tidur, kadang sambil makan (dengan hati-hati), kadang sambil main, Ini semua terjadi di rumah kedua, kampus tercinta saya di Fasilkom-UI atau dengan kepanjangan Fakultas Ilmu Komputer Universitas Indonesia.

Kehidupan di kampus bisa dikatakan sangat menyenangkan karena dipenuhi dengan teman-teman yang baik hati dan musuh-musuh yang terlihat baik hati walaupun  setiap harinya dipenuhi dengan tugas-tugas yang jujur saja banyak dan susah-susah >_<,

Kalau sudah di rumah kedua, dari sisi waktu, saya dapat menghabiskan setengah hari lebih (dari jam 8 pagi sampai jam 8 malam ) bersinggah di Fasilkom-UI, alasannya? karena masih ada kerjaan di kampus yang harus dilakukan walaupun sebenarnya ingin cepat pulang demi menyelesaikan pekerjaan rumah (bukan PR tapi house work ) orz, kalau nge-kost, mungkin saya bisa santai saja ngenet di kampus sampai malam,

DSCF0215

Oh iya baru-baru ini fakultas kedatangan mahasiswa baru , angkatan 2010 dengan nama TURBO! ^_^)b, namanya sedikit di-inherit dari nama angkatan 2008 ULTRA. TURBO itu anak-anaknya ganteng-ganteng, manis-manis, cantik-cantik, pinter-pinter tetapi memang sebagian dari crewnya kurang bersosialisasi dengan seniornya, sama halnya dengan para senior -_-, atau lebih tepatnya malu-malu nih anak 2010nya? cobalah berkenalan

Well apapun itu, Selamat datang untuk angkatan 2010 di environment Fasilkom –UI Smile semoga enjoy di Home kalian yang baru

[Silverlight4][WindowsPhone7] What happened to list.ScrollIntoView in WP7??

Hello guys,

Again, another bug (is it?) is found inside Windows Phone 7 Silverlight,
Actually this time I was working on creating input for date and time,
But here I will just use simple number to show the bug.

Oh by the way if you want to try this code on WP7, you have to download the WP7 developer tools in its official site :),

//ListBox __ListBox1_ is instantiated inside xaml so no codes for instantiation in code-behind
 public partial class MainPage : PhoneApplicationPage
    {
        public MainPage()
        {
			InitializeComponent();
			
			for(int i=0; i<10 ; i++)
			{
				___ListBox1_.Items.Add(i.ToString());
			}
		        ___ListBox1_.SelectedIndex = 2;
			___ListBox1_.UpdateLayout();
			___ListBox1_.ScrollIntoView(___ListBox1_.SelectedItem);// scroll to selected items 
			___ListBox1_.UpdateLayout();

        }
    }

The code above is just a simple example, and what happened?

Nothing happened

the __ListBox1_ didn’t scroll to the selected object (in this case it is 2),
I googled and got that someone with the same problem got solved by using above codes
it seems that person is using Silverlight that is not in WP7, and this just happened in WP7

if someone could give me some clues regarding this, I will feel very appreciated

Microsoft Innovation Center

[Silverlight4] InvalidOperationException dan tidak ada list.RemoveAll() di Silverlight 4?

Beberapa waktu yang lalu ketika sedang mengoprek Windows Phone 7 dengan bahasa C# dan Silverlight,
ada saatnya Saya harus menghapus Items di dalam instansi dari sebuah List.
Dengan simple saja, pemikiran yang muncul dalam kehendak saya adalah memakai code seperti berikut :

List<Int32> listInteger = new List<Int32>();

            listInteger.Add(0);
            listInteger.Add(1);
            listInteger.Add(2);
            listInteger.Add(1);

            foreach(int angka in listInteger)
            {
                listInteger.Remove(1);

            }

kode diatas diasumsikan akan dapat menghapus element angka 1 dalam listInteger,
tetapi bila kita meng-eksekusi program diatas apa yang kita dapat :

InvalidOperationException orz

mengapa dapat terjadi seperti ini? ini terjadi karena List menggeser element-element nya setelah dihapus >_<
Jadi problem terjadi setelah program menghapus items yang ingin kita hapus, setelah iterasi penghapusan data, semua element list setelah yang dihapus menggeser dan ini yang menyebabkan Exception diatas muncul, walaupun misalkan InvalidOperationException diatas tidak muncul, yang akan muncul adalah IndexOutOfBoundException karena Capacity List menjadi lebih kecil.

Salah satu solusi yang saya asumsikan dapat bekerja adalah dengan menggunakan method RemoveAll(Predicate match) yang biasa dipakai di .NET Framework dan terdapat dalam class List, cara kerja method ini sebagai contoh:

listInteger.RemoveAll(x => x == 1);

kode diatas mengatakan “menghapus semua element dalam listInteger dimana element tersebut (atau x) bernilai 1”, suatu penentuan kondisi dalam C# disebut sebagai “predicate”,
kode diatas sangat cocok untuk dapat menyelesaikan problem InvalidOperationException diatas.

TETAPI
satu hal lagi masalah muncul yaitu didalam Silverlight, tidak ada method RemoveAll(Predicate match) orz, sehingga Saya harus mencari solusi yang lain.

karena tidak ada di Silverlight, maka secara terpaksa Saya harus membuat sendiri Method yang diperlukan diatas, method tersebut adalah sebagai berikut :

  public static T Find<T>(this List<T> data, Predicate<T> test)
        {
            for (int i = 0; i < data.Count; i++)
            {
                if (test(data[(i)])) //mengecek apakah predicate test bernilai true dengan input data[(i)]
                    return data[(i)];
            }
            return default(T);
        }

        public static int RemoveAll<T>(this List<T> data, Predicate<T> test)
        {
            int removed = 0;

            for (int i = data.Count - 1; i >= 0; i--)
            {
                if (test(data[(i)]))//mengecek apakah predicate test bernilai true dengan input data[(i)]
                {
                    data.RemoveAt(i);
                    removed++;
                }
            }

            return removed;
        }

Kode Find() diatas berguna untuk mencari data di list yang bersangkutan dengan predicate yang valid, dan RemoveAll() yang akan dipakai untuk menghapus semua element yang cocok dengan predicate yang kita inginkan.

Silverlight coders, bila ada yang ingin ditanyakan silahkan saja ya, kalau bisa akan Saya jawab 🙂

Microsoft Innovation Center

Bootcamp Assistant : “The disk cannot be partitioned because some files cannot be moved”

Hello everybody,

Pada posting kali ini, gw akan bercerita sedikit tentang pengalaman gw dalam memakai Bootcamp dengan partisi Windows 7 32 bit dan OS Apple Snow Leopard 64 bit versi 10.6.4

Mohon maaf bila tidak terdapat gambar yang dapat membantu pembaca, kalau ada waktu nanti gw tambahkan 😉

Waktu itu situasi gw seperti dibawah ini :

Tujuan gw: Mengkonversi Bootcamp Windows 32 bit menjadi Windows 64 bit
Masalah : Ketika ingin membuat partisi baru Windows(setelah menghapus dan backup data windows 32 bit) di Bootcamp Assistant di MACOSX, bootcamp mengatakan hal berikut :

“The disk cannot be partitioned because some files cannot be moved”
Backup the disk and use Disk Utility to format it as a single Mac OSX Extended (journaled) volume.
Restore your information to the disk and try using Boot Camp Assistant again.

Mendengar ini muka gw menjadi : O_O + OMG

Penjelasan Masalah :
Mengapa bisa terjadi seperti ini? padahal pertama kali kita meng-install bootcamp bisa-bisa saja, ternyata ini berujung pada masalah fragmentasi pada partisi windows, jadi ketika kita menghapus partisi windows, fragmentasi pada partisi windows tidak di Defragmentasi sehingga tersisa DAN BootCamp hanya dapat membuat partisi pada bagian yang masih “bersih”

Solusi :
Setelah menerima message diatas dari bung BootCamp, gw langsung mencari informasi mengenai masalah ini di internet, solusinya yang gw tahu antara lain :

  • Menggunakan aplikasi seperti iDefrag untuk mendefragmentasi partisi sisa windows
  • Membeli Harddisk untuk backup satu partisi MACOSX, kemudian format Harddisk utama yang harus di format dan meng-copy Harddisk backup ke Harddisk utama

Dari pilihan diatas, gw melakukan yang opsi kedua, mengapa? karena lebih aman dan di internet pun terdapat rumor mengenai DiskFail atau semacamnya yang membuat gw takut menggunakan aplikasi seperti iDefrag -.-

Dan hanya untuk ini, gw sampai pergi ke Mangga Dua hari itu juga untuk membeli Harddisk backupan, tidak nyesel juga karena dapet Harddisk 2TB (harga cukup murah pada waktu itu). Dalam pemilihan Harddisk backup, gw mengambil ukuran yang aman, maksudnya karena OSX gw ukurannya 500GB, maka Harddisk backupan 500GB juga sudah cukup, tetapi karena gw juga membeli untuk backup data yang lain selain data MAC, maka gw membeli yang 2TB. Pada akhirnya gw hanya memakai 500GB dari 2TB untuk backup MACOSX ( dengan partisi 500GB dan 1,5TB pada 2TB yang baru dibeli ) sehingga tidak mungkin Harddisk backup tidak cukup untuk backup walaupun Harddisk utama penuh.

Sekarang ditangan gw terdapat alat-alat berikut :

  • Macbook Pro dengan Harddisk Utama 500GB, Harddisk ini yang akan dibackup dan diformat
  • Harddisk backup, Harddisk yang akan menampung data harddisk utama
  • Aplikasi SuperDuper! ( Shareware tetapi fungsi yang akan kita pakai terdapat pada versi gratisan jadi download saja di site officialnya :Klik disini )

Aplikasi SuperDuper! akan dipakai untuk Cloning Harddisk utama ke Harddisk backupan, dengan begitu kita bisa nge-booting di Harddisk backup.

Step yang gw lakukan :

  • 1. (Kalau belum) Backup semua data Windows 32 bit ke tempat lain (bukan Harddisk backupan yang untuk MACOSX)
  • 2. Boot dengan MACOSX
  • 3. (kalau belum) Hapus partisi Windows 32 bit dengan BootCamp Assistant
  • 4. Pasang Harddisk Backup ke Macbook, buka aplikasi Disk Utility dan format dengan format Journaled Partition sebesar ukuran Harddisk Utama
  • 5. Setelah selesai Format, buka SuperDuper! ganti Copy .[Harddisk utama]. to .[Harddisk backup]., pilih “backup – all files”, dan klik Copy Now
  • 6. Kemudian, boot lah dengan Harddisk Backupan, dengan membuka System Preference > Startup disk > dan pilih Mac OSX yang terdapat pada Harddisk External ( atau ketika booting tekan [alt] dan pilih yang dari Harddisk External )
  • 7. Boot Mac anda ( silahkan tekan [alt] untuk jaga-jaga atau tidak juga tidak apa )
  • 8. Setelah masuk kedalam menu MACOSX, gunakan Disk Utility untuk format Harddisk Utama dengan cara yang sama pada Harddisk Backup
  • 9. Selesai format, buka SuperDuper! dan sekarang Copy.[Harddisk Backup]. to .[Harddisk Utama]., klik Copy Now
  • 10. Lakukan kembali step 6 tetapi kali ini boot dengan Harddisk Utama
  • 11. Masalah fragmentasi seharusnya sudah teratasi dan dapat melanjutkan ke tahap pembuatan partisi di Bootcamp seperti biasanya

Cukup panjang ya?, sebenarnya ingin dibuat lebih singkat dengan gambar yang memadai,

Sedikit penjelasan mengenai SuperDuper!, mengapa ketika nge-Clone Harddisk Utama ke Harddiks Backup fragmentasinya tidak ikut ter-clone? ini dikarenakan SuperDuper! melakukan Cloning pada tingkat File saja, sehingga bagian fragmentasi yang tingkatnya dibawah file tidak ter-clone

Singkat pengalaman dari gw, mudah-mudan berguna
Avoir 😉