Subscribe RSS Join our Facebook Group Follow us on Twitter!
in Search

Catatan Billy Riantono

sebuah catatan kecil dari sebuah kehidupan :)

August 2011 - Posts

  • Membuat Youtube Instant di Silverlight ( SL 4 )

    Hello all,

    ketemu lagi Open-mouthed smile kali ini kita akan mencoba youtube instant ( like ytinstant.com ) tapi versi simplenya menggunakan Silverlight 4 ( Out of Browser ). kurang lebih aplikasinya nanti akan berbentuk seperti gambar dibawah .

    ytinstantsl

    developer tools yang digunakan seperti biasa menggunakan visual studio 2010.

    untuk pertama buatlah project baru dengan menggunakan Silverlight Application kemudian beri nama project secara bebas kemudian klik create.

    untuk XAML Code ( tampilan ) yang digunakan antara lain :

       1: <UserControl.Background>
       2:        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
       3:            <GradientStop Color="Black" Offset="0" />
       4:            <GradientStop Color="White" Offset="1" />
       5:        </LinearGradientBrush>
       6:    </UserControl.Background>
       7:    <Grid x:Name="LayoutRoot" DataContext="{Binding}">
       8:        <Grid Margin="12,20,12,12" Name="grid1">
       9:            <Grid.RowDefinitions>
      10:                <RowDefinition Height="53*" />
      11:            </Grid.RowDefinitions>
      12:            <TextBox Margin="17,20,0,0" Name="txtKeyword" Text="Please enter your keyword ...." GotFocus="txtKeyword_GotFocus" TextChanged="txtKeyword_TextChanged" Height="28" VerticalAlignment="Top" HorizontalAlignment="Left" Width="264" />
      13:            <WebBrowser Margin="17,62,17,147" Name="webBrowser1" />
      14:            <TextBlock Height="28" Margin="296,20,0,0" Name="tbStatus" Text="" VerticalAlignment="Top" Foreground="Black" HorizontalAlignment="Left" Width="213" FontSize="8" />
      15:            <ListBox Margin="18,0,17,14" Name="lbOther" Height="128" VerticalAlignment="Bottom" ItemsSource="{Binding}" SelectionChanged="lbOther_SelectionChanged">
      16:             <ListBox.ItemTemplate>
      17:                    <DataTemplate>
      18:                        <StackPanel Orientation="Horizontal">
      19: Image Name="thumbnails" Source="{Binding thumbnail}" Stretch="Fill" Width="100" Height="100" />
      20:                            <TextBlock Name="title" Text="{Binding title}"  Foreground="Black"/>
      21:                        </StackPanel>
      22:                    </DataTemplate>
      23:                </ListBox.ItemTemplate>   
      24:            </ListBox>
      25:        </Grid>
      26:        <sdk:Label Height="20" Margin="12,3,360,0" Name="label1" VerticalAlignment="Top" Content="Youtube Instant in Silverlight" />
      27:        <Grid.Background>
      28:            <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
      29:                <GradientStop Color="#FFBAE4FF" Offset="0" />
      30:                <GradientStop Color="White" Offset="1" />
      31:            </LinearGradientBrush>
      32:        </Grid.Background>
      33:    </Grid>
      34: /UserControl>

    kemudian buat sebuah class bernama ydata ( digunakan untuk membuat custom list ) , coding didalamnya antara lain :

       1: public class ydata
       2:    {
       3:        public string url { get; set; }
       4:        public string title { get; set; }
       5:        public string thumbnail { get; set; }
       6:        public string description { get; set; }
       7:    }

    kemudian main behind code ada dibawah ( diletakana pada MainPage.xaml.cs ) :

       1: using System;
       2: using System.Collections.Generic;
       3: using System.Linq;
       4: using System.Net;
       5: using System.Windows;
       6: using System.Windows.Controls;
       7: using System.Windows.Documents;
       8: using System.Windows.Input;
       9: using System.Windows.Media;
      10: using System.Windows.Media.Animation;
      11: using System.Windows.Shapes;
      12: using Newtonsoft.Json.Linq;
      13: using System.Threading;
      14: using System.Windows.Threading;
      15: using System.Collections.ObjectModel;
      16:  
      17: namespace YtInstantSL
      18: {
      19:     public partial class MainPage : UserControl
      20:     {
      21:         string MyDevKey = "YourDevKey";
      22:         IList<ydata> videos;
      23:         IList<ydata> videosThumb;
      24:         private bool isi;
      25:         DispatcherTimer dispatcherTimer = new DispatcherTimer();
      26:         public MainPage()
      27:         {
      28:             InitializeComponent();
      29:             isi = false;
      30:             
      31:             dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
      32:             dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
      33:             
      34:         }
      35:  
      36:         private void txtKeyword_GotFocus(object sender, RoutedEventArgs e)
      37:         {
      38:             if (txtKeyword.Text == "Please enter your keyword ....")
      39:             {
      40:                 txtKeyword.Text = "";
      41:             }
      42:         }
      43:  
      44:         private void txtKeyword_TextChanged(object sender, TextChangedEventArgs e)
      45:         {
      46:  
      47:             wc_todo("http://gdata.youtube.com/feeds/api/videos?v=2&format=5&alt=jsonc&max-results=5&q=" + txtKeyword.Text + "&key=" + MyDevKey);
      48:             if (txtKeyword.Text.Length > 0)
      49:             {
      50:                 dispatcherTimer.Start();
      51:             }
      52:  
      53:         }
      54:  
      55:         private void wc_todo(string Uri)
      56:         {
      57:             WebClient wc1 = new WebClient();
      58:             WebClient wc2 = new WebClient();
      59:             try
      60:             {
      61:                 if (!(wc1.IsBusy))
      62:                 {
      63:                     wc1.DownloadStringAsync(new Uri(Uri, UriKind.Absolute));
      64:                     wc1.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
      65:                 }
      66:                 else if (!(wc2.IsBusy))
      67:                 {
      68:                     wc2.DownloadStringAsync(new Uri(Uri, UriKind.Absolute));
      69:                     wc2.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
      70:                 }
      71:             }
      72:             catch (WebException ex)
      73:             {
      74:                 MessageBox.Show(ex.Message);
      75:             }
      76:  
      77:         }
      78:  
      79:         public void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs c)
      80:         {
      81:             try
      82:             {
      83:                 var o = JObject.Parse(c.Result);
      84:                 videos = (from v in o["data"]["items"].Children() select new ydata { title = (string)v["title"], description = (string)v["description"], thumbnail = (string)v["thumbnail"]["sqDefault"], url = (string)v["content"]["5"] }).ToList<ydata>();
      85:  
      86:                 if (videos.Count() > 0)
      87:                 {
      88:                     isi = true;
      89:                     tbStatus.Text = txtKeyword.Text;
      90:                     videosThumb =videos ;
      91:                     lbOther.DataContext = videosThumb;
      92:                 }
      93:             }
      94:             catch (Exception ex)
      95:             {
      96:                 if (txtKeyword.Text != "")
      97:                 {
      98:                     tbStatus.Text = "Error : Video with this keyword not found.";
      99:                 }
     100:             }
     101:         }
     102:         private void dispatcherTimer_Tick(object sender, EventArgs e)
     103:         {
     104:             if(isi == true){
     105:             try
     106:             {
     107:                 
     108:                 webBrowser1.Navigate(new Uri(videos[0].url,UriKind.Absolute));
     109:                 dispatcherTimer.Stop();
     110:             }
     111:             catch (Exception ex)
     112:             {
     113:                 MessageBox.Show(ex.Message);
     114:  
     115:             }
     116:             }
     117:         }
     118:  
     119:         private void lbOther_SelectionChanged(object sender, SelectionChangedEventArgs e)
     120:         {
     121:             webBrowser1.Navigate(new Uri(videos[lbOther.SelectedIndex].url));
     122:         }
     123:     }
     124: }

    setelah itu sekarang coba debug , bila gak ada error , maka teman – teman telah berhasil Smile . dari sini temen- temen bisa kembangkan ke fitur yang lain Smile

    seperti auto next to next queue video dan lain sebagainya Smile

    Selamat mencoba dan berkreatif ria Smile

     

    Cheers All.

    Beer mug

  • Membuat Paging di GridView menggunakan linQ ( ASP.Net )

    hello all,

    ketemu lagi dengan saya Smile kali ini kita akan coba membahas bagaimana membuat paging di gridview secara manual ( by code ) menggunakan linQ.

    semisal ada sebuah table products dengan column id_product dan nama_product .

    dengan isi sebagai berikut :

    id_product | nama_product

    1 | bola

    2 | raket

    3 | net

    4 | senar'

    5 | kaos olahraga

    6 | peluit

    kita akan mencoba membuat paging yang akan memunculkan 2 data pada setiap halamannya Smile

    maka query linqnya kurang lebih adalah sebagai berikut Smile

       1: var Results = (from p in products
       2:                select p).Take(jumlahdata).Skip(StartRow);

    dimana jumlahdata nantinya akan kita isi 2 dan untuk mencari start row akan kita bahas di postingan selanjutnya.

     

    so stay tune di channel ini Smile hahaha

    Thumbsup

    508 Views, 0 Comment(s), Published on: 08-16-2011 21:49 by billy.riantono to Catatan Billy Riantono
  • Monitoring DNS Server di Windows Server 2008

    Sering kali ketika kita membangun sebuah DNS server, mengalami sebuah gangguan, dan kita perlu melakukan monitoring. Dalam Windows Server 2008 disediakan fitur untuk melakukan hal tersebut dengan sangat mudah Smile

    Untuk langkah – langkahnya antara lain adalah : ( Maaf untuk screenshot menyusul yah Open-mouthed smile )

    >>. Klik Start kemudian klik Administrative Tools dan kemudian klik DNS,

    >>. Pada list pane, klik kanan <YourComputerName> dan kemudian klik properties,

    >>. Klik tab monitoring,

    >>. Pada monitoring tab , check pilihan A Simple query against this DNS Server ,      dan kemudian klik Test Now,

    >>. Pada tab monitoring, pastikan A recursive query to Other DNS Servers dicentang dan kemudian klik Test Now,

    >>. Perhatikan hasil pengetestannya.

    untuk melakukan penghentian service DNS Server sementara dapat dilakukan dengan command : sc stop dns dan untuk menjalankannya kembali kita dapat menggunakan sc start dns , karena terkadang kita perlu melakukan restart pada DNS Server kita.

    Demikian tulisan kali ini, semoga dapat bermanfaat.

     

    Cheers,

    Banana

    333 Views, 0 Comment(s), Published on: 08-06-2011 12:23 by billy.riantono to Catatan Billy Riantono