Friday, July 17, 2009

How to config network in Solaris 10

Changes Static IP Address and Host Name
    The sample below shows how to uses ipconfig change static IP address to 192.168.0.10 with netmask 255.255.255.0
  1. ifconfig vfe0 unplumb
  2. ifconfig vfe0 plumb 192.168.0.10 netmask 255.255.255.0 up
Config host name for ethernet card
    /etc/hostname.vfe0
     solaris10
Config network mapping for IP address and host name (hostname of Ethernet card)
    the hosts file format of each line is:
        IP-address    official-host-name    nicknames....
    the nicknames can be optional.
    /etc/hosts
     127.0.0.1         localhost            loghost
     192.168.0.xxx  solaris10
    /etc/netmasks
     192.168.0.xxx 255.255.255.0
Config Gateway
    /etc/defaultrouter
     192.168.0.1
Config DNS
    1. Specify DNS Server
        /etc/resolv.conf
         nameserver 168.95.192.1
         nameserver 168.95.192.2
    2. In order to enable DNS resolve, change the line in nsswitch.conf as below
        /etc/nsswitch.conf
         hosts: files dns
         inodes: files dns

Tuesday, July 7, 2009

How to uses callback function for C++

 
// This is a callback function sample without parameter.
void callbackProc1()
{
    printf("this is a call back 1..\r\n");
}
 
// This is a callback function sample with 2 parameters
bool callbackProc2(int nSize, char* pszName) {
    printf("this is a call back 2..\r\nSize is:%d  pszName is:%s \r\n", nSize, pszName);
    return true;
}
 
// This function invoke callback function as a parameter to it
void test1(void(*p)(void))
{
    p();
}
// This function invoke a callback function with 2 parameters
void test2(bool(*p)(int, char*), int param1, char* param2)
{
    if(p(param1, param2))
    {
        printf("the callback func return TRUE.......\r\n");
    }
}

void main()
{
    // this is a sample to demonstrate how to invoke a callback function without parameter
    // the callback function name is a memory address reference to callback function.
    test1(callbackProc1);
   
    // this is a sample shows how to invoke a callback functions with two parameters
    test2(callbackProc2, 999, "johnrock");
 
 

How to create a process to run a dos command with dos dialog window

CreateProcess(NULL, "cmd /c copy file1 file2", ....),

Create Sequence Numbers for Oracle

Full Create Sequence Syntax
CREATE SEQUENCE <sequence_name> INCREMENT BY <integer> START WITH <integer> MAXVALUE <integer> / NOMAXVALUEMINVALUE <integer> / NOMINVALUECYCLE / NOCYCLECACHE <#> / NOCACHEORDER / NOORDER;

Create Sequence Simplest Form
CREATE SEQUENCE seq_campus_site_id;
SELECT seq_campus_site_id.NEXTVAL FROM dual;

Simple Autonumber With Sequence
INSERT INTO <table_name>(<column_name>)VALUES(<sequence_name>.NEXTVAL);
INSERT INTO campus_site(site_id, organization_name, campus_name)VALUES(seq_campus_site_id.NEXTVAL, 'Univ. of Washington', 'Main Seattle');
SELECT * FROM campus_site;
INSERT INTO campus_site(site_id, organization_name, campus_name)VALUES(seq_campus_site_id.NEXTVAL, 'Univ. of Washington', 'Bothell');
SELECT * FROM campus_site;

Simple Autonumber With Sequence Into Two Tables
INSERT INTO <table_name>(<column_name>)VALUES(<sequence_name>.CURRVAL);
CREATE SEQUENCE seq_division_id;
INSERT INTO campus_site(site_id, organization_name, campus_name)VALUES(seq_campus_site_id.NEXTVAL, 'Univ. of Washington', 'Tacoma');
INSERT INTO division (division_id, site_id, division_name) VALUES(seq_division_id.NEXTVAL, seq_campus_site_id.CURRVAL, 'Engineering');
SELECT * FROM campus_site;
SELECT * FROM division;

Windows Smart Card Utilities

Connect to network by smart card
net use /smartcard
Specifies the network connection is to use the credentials on a smart card. If multiple smart cards are available, you are asked to specify the credential. This parameter cannot be used with /savecred.
 
Query all available samrt card and reader in the system
certutil -scinfo
 
 
Smart card PIN tool
pintool
 
 

Monday, June 22, 2009

How to dynamic manage upload files name in web server

This topic is help to understand how to manage file name uses SQL Server and dynamic specific the client upload file name store in the server file system.
the purpose is save the file to the server file system without having the file name replicated problems. if client download the files from the server, the server can specify the file name depend which the real file name store in the server file system and a popup dialog on user browser  with a file name specify from SQL server but not the physical file name store in the server file system.
 
 
Over write MIME protocol
When Internet Explorer receives the header, it raises a File Download dialog box whose file name box is automatically populated with the file name that is specified in the header.
 
For ASP .NET
Response.AddHeader("content-disposition","attachment; filename=fname.ext");
 
For JSP
response.setHeader( "Content-Disposition", "attachment; filename=" + downloadFileName );
 
Note:
  1. You may have to specify the Content Type resp.setContentType( "application/x-download" );
  2. Another Content-Type can instate of the content-disposition but it bahaves is differently
    resp.setHeader( "Content-Type", "attachment; filename=" + downloadFileName );
References:
    For more information about content-disposition, see Request for Comments (RFC) 1806
    http://support.microsoft.com/kb/260519

JSP Example
<%@ page  language="java" contentType="text/html"%>
<%@ page import="java.io.*, java.util.*, javax.servlet.*"%>
<%
    if (request.getParameter("filename").equals("") == false)
    {
        String path = request.getParameter("path");
        String filename = request.getParameter("filename");
        response.setContentType("application/octet-stream");
        response.setHeader("Content-Disposition", "attachment; filename=" + request.getParameter("filename"));
        int iRead;
        FileInputStream stream = null;
        try
        {
            File f = new File(path + filename);
            stream = new FileInputStream(f);
            int ilength = 0;
            while ((iRead = stream.read()) != -1)
            {
                out.write(iRead);
            }
            out.flush();
        }
        finally
        {
            if (stream != null)
            {
                stream.close();
            }
        }
    }
%>

Tuesday, June 16, 2009

How to Load ResourceBundle

 
Load Resource from different location
// Load resource from specific file object
File f = new File("d:\\\\props\\res.jar");
URL url = f.toURI().toURL();
URL[] urls = new URL[]{url};
ResourceBundle lang = ResourceBundle.getBundle("tw.com.mycomp.res.properties", new Locale("en", "US"), new URLClassLoader(urls));
 
// Load resource from specific URL
URL[] urls = new URL[]{ new URL("file:///d:/props/errmsg.properties") };
ResourceBundle lang = ResourceBundle.getBundle("tw.com.mycomp.res.properties", new Locale("en","US"), new URLClassLoader(urls));