Everything is Fabulous

The Notes of Sagi Arsyad
See also: Other Geeks@INDC

News

Sagi Arsyad's Facebook profile

ASP.NET

My Organization

PHP-FastCGI IIS with SQL Server 2005 connection problem

<?
$cn = mssql_connect(".\SQLExpress", "sa", "a");
mssql_select_db("lab01", $cn);
$q = "SELECT data FROM mytable WHERE id=1;";
$result = mssql_query($q, $cn);
if($row=mssql_fetch_array ($result)) {
    echo $row[0];
}
mssql_close($cn);
?>

code diatas apabila anda menggunakan PHP-FastCGI di IIS dengan php.ini standard akan menghasilkan error "Unable to connect to server” atau “Unfinded function mssql_connect”, dst.

masalah ini bisa disolve dengan

1. Load PHP MSSQL extension
uncomment pada php.ini :
extension=php_mssql.dll

2. Download ntwdblib.dll
download ntwdblib.dll dan copy ke direktori yang sama dengan php-cgi.exe
note: pastikan ntwdblib.dll memiliki versi 2000.80.194.0 atau yang terbaru untuk bisa melakukan koneksi database ke SQL Server 2005

 

note :
saya menggunakan IIS 7 (Vista SP1), dan PHP 5.2.8 dan SQL Express 2005 SP2

 

See you next Deculture – S.A.

Share this post: | | | |
Posted: Feb 07 2009, 06:52 PM by Sagi Arsyad | with no comments
Filed under: , ,
Internet Explorer 8 RC1

image

ready to download at :

http://www.microsoft.com/windows/internet-explorer/beta/

 

so, what change ?

1. More accurate “Suggested Sites” feature

ie8-1

in previous beta version, “Suggested Sites” is shown base on browsing history. but now we get website suggestion based on active tab. which mean each tab has it own “Suggested Sites”

2. Webslice

ie8-2

so this what they call “webslice”. very interesting, trim all non-important page content, and integrate it into your browser.

3. Colorfull tabs

ie8-3

not just colorfull, but also grouping website you browse with the same color

4. Resource Usage

ie8-4

I’m not really understand what the numbers mean, but I think IE 8 use about 15 MB for single tab browser

5. Smartscreen Filter

ie8-5

hey, what is this ?

 

Webkit Test Result :

IE8 RC 1 : 10839ms
Google Crome : 2383.6ms

for more detail :

http://blogs.msdn.com/ie/archive/2009/01/26/internet-explorer-8-release-candidate-now-available.aspx

 

See you next Deculture – S.A.

Share this post: | | | |
Posted: Jan 27 2009, 03:52 PM by Sagi Arsyad | with 1 comment(s)
Filed under: ,
Windows XP diatas Xen Virtualization

xp-xen

in one word : it works.

melihat demo pak kunto yang memperlihatkan Hyper-V membuat saya ingin mencobanya. namun, apa daya, laptop saya tidak Hyper-V compatible

teringatlah saya pada postingan saya beberapa bulan lalu tentang Xen. terpancing untuk mencoba hal yang baru, jadinya ingin install Windows diatas Xen. dan ternyata tidak terlalu sulit.

Spec Server :

  • Ubuntu 8.04.1 (hardy) Linux 2.6.24-23-xen x86_64
  • Quad Xeon X3220  @ 2.40GHz
  • 2 GB RAM

saya belum coba di OS yang 32 bit untuk Xen running XP, bisa gak ya?

 

See you next Deculture – S.A.

Share this post: | | | |
Open Flash Chart

beberapa minggu bermain PHP akhirnya berurusan dengan yang namanya bikin chart, karena saya gak punya bakat di desain chart, terpikirlah untuk pakai 3rd party component yang gratis, akhirnya ketemu juga Open Flash Chart (OFC)

image

cara menggunakannya juga gak sulit, cukup mengerti komposisi JSON, karena data yang digunakan oleh Flash dari OFC ini adalah JSON.

di SDK dari OFC ini sendiri sudah terdapat API untuk PHP, .NET dan beberapa bahasa lain.

 

See you next Deculture – S.A.

Share this post: | | | |
Posted: Jan 11 2009, 11:16 PM by Sagi Arsyad | with 1 comment(s)
Filed under: ,
Test Windows Live Writer 2009 Beta

imageimage 

image

satu kata : “Fabulous”

 

See you next Deculture – S.A.

Share this post: | | | |
XNA Create 2D Sprite

salah satu langkah yang simple untuk gettting started with XNA adalah dengan membuat character sprite pada screen.

untuk tutorial ini kita gunakan sebuah png sprite yang dapat didownload di sini (Credit to my friend Abe MistuTeru for drawing the sprite)

1. Create Project

image

buat project baru pada visual studio

Visual C# -> XNA Game Studio -> Windows Game -> OK

 

2. Load Image

image

pada langkah ini kita me-load image yang akan kita gunakan sebagai sprite

pada Solution Exploerer -> Content -> klik kanan -> add Existing Item ... -> Pilih file sprite

image

setelah file berhasil diload, sprite file (etna.png) akan menjadi bagian dari Content dan memiliki properies "Asset Name" sesuai dengan file name

image

3. Load Sprite

pada Game1.cs, gunakan code berikut :


using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace MyXNA
{
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;

        Texture2D spriteTexture;
        Vector2 pos = new Vector2(0, 0);


        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }

        protected override void Initialize()
        {
            base.Initialize();
        }

        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            spriteTexture = this.Content.Load("etna");
        }

        protected override void UnloadContent() { }

        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                this.Exit();

            base.Update(gameTime);
        }

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            //Add your drawing code here
            spriteBatch.Begin();
            spriteBatch.Draw(spriteTexture, pos, Color.White);
            spriteBatch.End();

            base.Draw(gameTime);
        }
    }
}

build, lalu run project. hasilnya sprite berhasil diload pada area game

image

Share this post: | | | |
Posted: Dec 07 2008, 02:32 PM by Sagi Arsyad | with no comments
Filed under: ,
Team XD

Team XD works

berawal dari bubarnya team imagine cup 2009 saya, saya bergabung dengan game developer community (GameDev) di Fasilkom UI

sebelum saya bergabung, team GameDev telah membuat sebuah framework dan prototype Game menggunakan C++ dan running di Linux yang dinamakan project Oroborus. Lalu, beberapa minggu yang lalu, kami terinspirasi untuk memporting project Oroborus menggunakan XNA framework. diluar dugaan, membuat game menggunakan XNA cukup mudah.

sejauh ini kami (Team XD) sudah berhasil membuat sprite yang berjalan pada sebuah game map "3D". namun masalah besar yang kami hadapi justru bukan masalah pada code, tetapi lebih berhubungan dengan matematika.
salah satunya adalah konsistensi posisi 2D sprite ketika 3D map berganti point of view, di butuhkan skill matematika Aljabar Numerik yangmana tidak satupun anggota team kami telah mengambil mata kuliah Aljabar Numerik (It's the scariest subject in Fasilkom)

untuk mahasiswa Fasilkom UI yang ingin ikut team XD, silahkan hubungi saya atau Abe MitsuTeru.

 

see you next Deculture - S.A.

Share this post: | | | |
This Week Oprex : Linux Kernel

melanjutkan seri oprex saya, yang sebelum nya mulai dari centos, openvz, lalu xen. ingin mencoba tantangan baru, saya tergoda untuk compile kernel linux.

compile kernel menurut saya menurut saya merupakan operasi yang cukup scary, bukan karena ini "kernel" yang merupakan salah satu bagian terpenting dari OS, tapi karena saya belu pernah melakukannya :)

tentu saja saya tidak mau ambil resiko dengan pakai production server untuk compile kernel. untuk compile kernel ini saya gunakan Xen Virtualization dengan debian 4.0 sebagai host OS dan (juga) debian 4.0 sebagai guest OS pada Xen untuk kompilasi kernel

source code kernel linux terbaru (2.6.27.2) dapat anda download dari local mirror UI :

http://kambing.ui.edu/kernel-linux/v2.6/

untuk instruksi Compile kernet pada debian dapat dibaca :

http://www.howtoforge.com/kernel_compilation_debian_etch_p2 

 

update:

Gagal -- hiks....
compile nya sih sukses, tapi gagal di load oleh guest OS nya Xen.
jangan compile kernel di atas Xen, karena Xen tidak me-load kernel dari filesystem-nya guest OS, namun kernel dari filesystemnya Host OS

 

 

See you next Deculture - S.A.

Share this post: | | | |
This Weekend Oprex #2 : Xen

xen 

# wget http://bits.xensource.com/oss-xen/release/3.3.0/xen-3.3.0.tar.gz
# tar xzf xen-3.3.0.tar.gz

ah gagal compile kernel Xen..

kalau kemarin saya sempat membicarakan untuk mengoprex OpenVZ, sekarang saya bicarakan tentang Xen

seperti halnya openvz, Xen merupakan salah satu teknologi Virtualization di Linux yang free.

mengapa kok dari openVZ ke Xen ?

karena masalah Socket !

  • server A yang saya manage di berada Di Texas ,
  • server B berada di Texas namun berbeda datacenter dengan server A,
  • server C berada di Utah.

masing-masing server ber-OS Linux , namun berbeda distro, dan semuanya terhubung dengan backbone internet US dengan speed 100Mbps (12 MBps)
pada Server A merupakan subject eksperimen Virtualiztion dengan lighttpd sebagai webserver untuk transfer file

cara eksperimennya saya, upload file sekitar 100MB ke server A yang nantinya didownload oleh server B dan server C

hasil percobaan

Server A dengan OpenVZ --> ke server B dan C max 6 MB/s

Server A dengan Xen  --> ke server B dan C max 11 MB/s

 

saya tidak membenchmark hal lainnya selain socket writing dari masing-masing kernel virtualization diatas, sehingga tidak bisa dijadikan patokan mana dari mereka yang paling bagus

saya pernah menemukan artikel dimana ada Windows XP dapat diinstal diatas Xen kernel (tapi belum sempat coba), nampaknya akan jadi target selanjutnya

 

See you next Deculture - S.A.

Share this post: | | | |
This Weekend Oprex: OpenVZ

openvz_logo

karena baru dipinjamkan fresh dedicated server debian lagi, salah satu subjek yang sudah lama saya greget mau mainkan adalah OpenVZ

Sekedar info, OpenVZ merupakan salah satu teknologi virtualisasi yang terkenal di Linux selain Xen dan Virtuzzo (propertary)

"kabar buruk" yang saya dapatkan bahwa OpenVZ tidak secara resmi di-support oleh debian, sehingga saya harus meng-compile sendiri Kernel Debian yang di-patch supaya kompatibel dengan Debian (crossing my finger, hoping it will works)

mau coba juga ?  follow these instruction :

http://wiki.openvz.org/Compiling_the_OpenVZ_kernel_%28the_Debian_way%29

http://wiki.openvz.org/Installation_on_Debian

well.. Goodluck for me :)

-- update

  • Berhasil compile kernel OpenVZ
# uname -r
2.6.18-1-openvz

 

See you next Deculture - S.A.

Share this post: | | | |
C++ Compile Winsock Problem

this last one week I got problem compile C++ code from MSDN Library about winsock.

the code :

#include 
#include "winsock2.h"

void main() {
  //----------------------
  // Initialize Winsock
  WSADATA wsaData;
  int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
  if (iResult != NO_ERROR)
    printf("Error at WSAStartup()\n");

  //----------------------
  // Create a SOCKET for connecting to server
  SOCKET ConnectSocket;
  ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  if (ConnectSocket == INVALID_SOCKET) {
    printf("Error at socket(): %ld\n", WSAGetLastError());
    WSACleanup();
    return;
  }

  //----------------------
  // The sockaddr_in structure specifies the address family,
  // IP address, and port of the server to be connected to.
  sockaddr_in clientService; 
  clientService.sin_family = AF_INET;
  clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
  clientService.sin_port = htons( 27015 );

  //----------------------
  // Connect to server.
  if ( connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
    printf( "Failed to connect.\n" );
    WSACleanup();
    return;
  }

  printf("Connected to server.\n");
  WSACleanup();
  return;
}

but when I compile it using Visual C++ 2008 express it give linker error :

1>------ Build started: Project: soketmenyoket, Configuration: Debug Win32 ------
1>Linking...
1>program.obj : error LNK2019: unresolved external symbol __imp__connect@12 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__htons@4 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__inet_addr@4 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__WSACleanup@0 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__WSAGetLastError@0 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__socket@12 referenced in function _main
1>program.obj : error LNK2019: unresolved external symbol __imp__WSAStartup@8 referenced in function _main
1>C:\Users\Sagi\Documents\Visual Studio 2008\Projects\soketmenyoket\Debug\soketmenyoket.exe : fatal error LNK1120: 7 unresolved externals
1>Build log was saved at "file://c:\Users\Sagi\Documents\Visual Studio 2008\Projects\soketmenyoket\soketmenyoket\Debug\BuildLog.htm"
1>soketmenyoket - 8 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

 

what should I do ?
first, you can scream out loud.... (just kidding)

* right click on project name in solution explorer and chose properties

image

* on Configuration Properties > C/C++ > Advance
at properies "Compile As" make sure it set as "Compile as C++ Code (/TP)" even when your code extension is .c

image

* on Configuration Properties > Linker > Input
at properties "Additional Depedencies", type "WS2_32.Lib" (without quotes)

what we do is it give reference to C++ linker to include WS2_32.lib in folder
C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib
note : I using the latest windows SDK

image 

*compile it..

1>------ Build started: Project: soketmenyoket, Configuration: Debug Win32 ------
1>Compiling...
1>program.c
1>Linking...
1>Embedding manifest...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>Build log was saved at "file://c:\Users\Sagi\Documents\Visual Studio 2008\Projects\soketmenyoket\soketmenyoket\Debug\BuildLog.htm"
1>soketmenyoket - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

it's compile..

 

See you next Deculture

S.A.

Share this post: | | | |
Posted: Aug 10 2008, 06:05 AM by Sagi Arsyad | with no comments
Filed under: ,
Heroes Gathering

Sabtu [3, Agustus 2008] kemarin, Microsoft Indonesia mengadakan acara "Heroes Gathering",  untuk lengkap nya dapat dilihat di blog nya alex dan Album Fotonya Dondy

tapi yang perlu kita Highlight adalah momen pelepasan Mr.Z oleh para MSP (eh iya... gw bukan MVP maupun MSP lho)..

Zero and Joker

walaupun belum jadi MSP, gw paling menikmati "memutihkan" Zeddy :D

hasilnya, sedikit lagi, Zeddy akan mirip dengan Joker pada the Dark Knight

SONY DSC heath_ledger_as_the_joker_the_dark_knight_movie_image1

so.. Z goo luck with your new life

 

kalau dibandingkan dengan Fasilkom, Mahasiswa selesai sidang Tugas akhir langsung diseret keluar gedung, lalu diborgol di pohon, diceplokin telor, tepung dll...

 

See You Next Deculture Why so Serious ?

S.A.

Share this post: | | | |
Posted: Aug 04 2008, 03:19 PM by Sagi Arsyad | with 3 comment(s)
Filed under:
Expression Web 2 PHP IntelliSense Support

"menyikapi" postingan pak Risman tentang php intelisense support pada Expression Web 2, saya tergoda untuk mecobanya sendiri.

memang suatu hal yang menarik pada Expression Web 2 adalaha adanya php intelisense support. bagi saya yang biasa coding php menggunakan Notepad++ saya menemukan fitur yang sama persis dan cukup membantu, yaitu code coloring. Bukan cuma itu, pada Expression Web 2 ini, suatu fitur yang sering saya temui pada Visual Studio juga ada di sini, yaitu Intelisense untuk php.

Namun berbeda dengan Intelisennse nya Visual Studio, dimana C# compile ditanam (diintegrasikan) dalam Visual Studio nya. pada Expression Web 2 ini, php tidak ditanam pada Expression Web 2 ini, nampaknya yang ada adalah intellisense untuk native php function. Hal ini dikarenakan tidak dilakukannya partial compile Interpret dengan php.exe oleh Expression Web 2 seperti hal nya yang dilakukan Visual Studio untuk men-generate Intelisense ada C#

Tampilan dari Expression Web 2 ini mirip dengan Sharepoint Designer yang juga memiliki fungsional yang hampir sama, yaitu HTML Editor, namun Expression Web 2 ini tidak mensupport Sharepoint tentunya :)

ScreenShots

xweb-php1

intelisense pada php function

xweb-php2

intelisense pada php reserved variable

xweb-php3

php code coloring

 

See you next Deculture - S.A.

Share this post: | | | |
C++/Win32 @ MIC UI Day 1

 

Cool event today at MIC UI is the first days of C++/Win32 training series

most of the trainee  is From Physics Department Math and Science Faculty University of Indonesia, and some people from Kontinum and Win32.

today's topic is basic programming and concept of C++. not just to wrote some Hello world, but also some deep concept about how computers works, how memory works., etc.

12-07-08_0948
12-07-08_0949

and this is our trainer, Mr. Risman

12-07-08_1055

 

in break time, of course it need some refreshment. some of us watching first episode of Code Geass using MIC's projector :)

12-07-08_1234

 

See you next Deculture - S.A.

Share this post: | | | |
WCF Series : Pengenalan Windows Communication Foundation (part 1)

karena ada suatu wacana meng-open-source-kan Project Celestial Being di MIC UI, saya jadi memperdalam diri ke WCF :)

 

Salah Satu tantangan membangun aplikasi yang distributed adalah bagaimana antar aplikasi dapat berkomunikasi.
salah satu cara yang populer adalah menggunakan Web Services.
Cara ini cukup populer untuk mengkomunikasikan antar aplikasi di "Server" yang berbeda maupun antara client dan Web Service Server (Web Server).

namun bagaimana jika aplikasi yang akan kita buat berupa desktop application yang saling berkomunikasi ? kita tidak dapat menjamin (dengan kemungkinan 68%™) bahwa masing-masing client terinstall Web Server untuk menghost Web Service.

cara yang paling simple (dan makan tenaga) adalah membuat socket application (Socket Progamming) yang mengkomunikasikan satu client dan client lainnya. namun dengan cara ini sangat melelahkan karena kita harus mendefinisikan format, testing, dsb.

Solusi untuk masalah ini adalah Windows Communication Foundation (WCF)

beberapa tutorial tentang WCF, sudah dijelaskan panjang lebar oleh wely. namun pada konsep dasarnya adalah kita mengeneralkan sebuah aplikasi sebagai host untuk services

pada Web Service, Service berserta web contents di-host / di-handle oleh sebuah aplikasi web server

image

 

pada WCF, hampir sama dengan web services, Service hi-host / di-host pada WCF application kita.

image

melihat struktur yang hampir sama ?

ya. konsep dasar keduanya sama, Web Server maupun WCF Application memliki kesamaan bahwa mereka keduanya adalah aplikasi (executeable) dan keduanya meng-host services.

namun berbeda dengan Web services yang hanya bisa menggunakan transport HTTP, pada WCF kita bisa menggunakan transport lainnya, seperti MSMQ, tcp-net, dll.

jadi WCF ini sangat cocok sebagai API untuk client-to-client communication.

 

bersambung ke bagian 2 (contoh aplikasi) 

 

See you next Deculture - S.A.

Share this post: | | | |
More Posts Next page »