<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2845945721934227685</id><updated>2011-11-27T16:03:19.802-08:00</updated><category term='AIX 6.1'/><category term='smitty'/><category term='twill'/><category term='iSCSI'/><category term='links'/><category term='python lambda filter reduce'/><category term='Netapp'/><category term='FAS2020'/><title type='text'>bugpy</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-6949314085846671886</id><published>2009-12-28T10:29:00.001-08:00</published><updated>2009-12-28T11:28:22.763-08:00</updated><title type='text'>Got email password recovery setting notification, and think</title><content type='html'>When I logon google email account today,  Google mail notified me that I have not set email password recovery options yet.&lt;br /&gt;&lt;br /&gt;It recalled my painful experience on password recovery: when I reset yahoo email password a year ago, somehow I can not logon the yahoo mail with either the old one and the new one; Then I tried to use reset password, and realized that I could not remembered my secondary email address to retrieve password, because I set it up 10 years ago.  I also could not answer the tricky questions from yahoo mail: when you registered your account, and what is your zip code etc. In addition, the yahoo technical support could not do anything more than what the web provided, then I gave up my yahoo account, which is my primary account for 10 years,  since then, I step away from yahoo.&lt;br /&gt;&lt;br /&gt;Password recovery quit often happens. When password recovery is needed, the user really expect it work with security and convenience. Traditionally, we use web-based questionnaires.  It is good for this application, not so good in the real world. When we have set same answer to the same/similar question on different web sites,  the risk of identity fault is increased.&lt;br /&gt;The new ways to deliver password recovery are desired. Google Mail uses  secondary email, or SMS text messages as additional options  for password recovery. &lt;br /&gt;&lt;br /&gt;Notification is also important to get the user update information.   the obsoleted information might caused unpredictable inconvenience during the password recovery as I experienced. If yahoo mail sent notification to me and remind me to update my answer to the questionnaires periodically, I might have chance to recovery the password and I might still primarily use yahoo mail .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-6949314085846671886?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/6949314085846671886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=6949314085846671886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/6949314085846671886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/6949314085846671886'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/12/got-email-password-recovery-setting.html' title='Got email password recovery setting notification, and think'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-5029973101474997362</id><published>2009-07-09T15:16:00.000-07:00</published><updated>2009-07-09T15:19:36.235-07:00</updated><title type='text'>netapp management port only allows single session</title><content type='html'>When an open session with netapp controller management interface,  you would not get ping, telnet and ssh to the same session through the network.   By disconnecting existing session,   I was able to connect it from another location.  I assumed that this feature prevent multiple management session on managing same device.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-5029973101474997362?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/5029973101474997362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=5029973101474997362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5029973101474997362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5029973101474997362'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/07/netapp-management-port-only-allows.html' title='netapp management port only allows single session'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-1003969307115691254</id><published>2009-07-08T16:33:00.001-07:00</published><updated>2009-07-08T16:49:41.498-07:00</updated><title type='text'>reduce AIX installation time</title><content type='html'>by default,  it would take 2 hours to install AIX 6.1 BOS by restoring 454 files and 77 addtional files from 4 CDs.  it is quite human interactive on this installation procedure.  To prevent human involving, and to reduce installation time,  many options are avaliable:&lt;br /&gt;1. setup NIM for the iscsi installation, or&lt;br /&gt;2. install minimum set of lpp source.&lt;br /&gt;&lt;br /&gt;for the option 2,  the installation time would improve to around 1 hour by  deselecting graphical software, and system management clients package.   the first CD is sufficient to the installation, saving effort on swapping CD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-1003969307115691254?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/1003969307115691254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=1003969307115691254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/1003969307115691254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/1003969307115691254'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/07/reduce-aix-installation-time.html' title='reduce AIX installation time'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-4408138158203187255</id><published>2009-07-08T09:30:00.000-07:00</published><updated>2009-07-08T09:37:34.905-07:00</updated><title type='text'>install AIX 6.1 on IBM PowerVM client partition ( iscsi disk only )</title><content type='html'>Would it be nice to have diskless IBM PowerVM client partition by using iscsi disk?  The following steps provides guideline.&lt;br /&gt;&lt;br /&gt;step 1 :  boot from CD&lt;br /&gt;&lt;br /&gt;step 2 : select console and keyboard in the BOS installation menu&lt;br /&gt;&lt;br /&gt;step3  ; configurat iscsi.  without this step,  the iscsi disk would not be available for the installation.&lt;br /&gt;&lt;br /&gt;iSCSI Configuration -- SW Initiator&lt;br /&gt;&lt;br /&gt;Type or select values in entry fields.&lt;br /&gt;Press Enter AFTER making all desired changes.&lt;br /&gt;&lt;br /&gt;                                                        [Entry Fields]&lt;br /&gt;* Ethernet Interface                                  en0&lt;br /&gt;* IP Address of Ethernet Interface                   [172.16.8.33]&lt;br /&gt;* Network Mask of Ethernet Interface                 [255.255.254.0]&lt;br /&gt;* Gateway to iSCSI Target                            [172.16.8.1]&lt;br /&gt;* iSCSI Target Name                                  [iqn.1992-08.com.netap&gt;&lt;br /&gt;* IP Address of iSCSI Target                         [172.16.8.49]&lt;br /&gt;* Port Number of iSCSI Target                        [3260]&lt;br /&gt;* iSCSI Initiator Name                               [iqn.2009-03.net.junip&gt;&lt;br /&gt;&lt;br /&gt;you should get hdisk configured in the result window, as shown in the following&lt;br /&gt;&lt;br /&gt;172.16.8.1 host 172.16.8.49: gateway 172.16.8.1&lt;br /&gt;en0 changed&lt;br /&gt;inet0 changed&lt;br /&gt;iscsi0 changed&lt;br /&gt;sh: /usr/sbin/savebase:  not found&lt;br /&gt;mkiscsi: 0321-007 Failed to execute savebase command.&lt;br /&gt;hdisk1 Available  N/A&lt;br /&gt;&lt;br /&gt;Step 4:   choose the recognized iscsi disk to be installed, then start installation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Is it be nicer to have nim or eznim setup for the iscsi installation ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-4408138158203187255?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/4408138158203187255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=4408138158203187255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/4408138158203187255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/4408138158203187255'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/07/install-aix-61-on-ibm-powervm-client.html' title='install AIX 6.1 on IBM PowerVM client partition ( iscsi disk only )'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-6045529625185681458</id><published>2009-07-06T11:54:00.000-07:00</published><updated>2009-07-06T12:00:21.814-07:00</updated><title type='text'>Can not load HMC console in I.E.</title><content type='html'>I attempted to launch IBM PowerVM HMC ( hardware Management Console, V7R3.4.0.0) with I.E. 6.0  and got message:  Please wait while the login page is loading, For more information, click "Help", then the page hang forever.&lt;br /&gt;&lt;br /&gt;The rootcause of issue is that there is no Java runtime environment installed in this machine, and I.E. 6.0 did not report the issue correctly.&lt;br /&gt;&lt;br /&gt;The workaround solution is to download firefox, and use firefox to access HMC, then firefox prompt the request on installing Java Runtime Environment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-6045529625185681458?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/6045529625185681458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=6045529625185681458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/6045529625185681458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/6045529625185681458'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/07/can-not-load-hmc-console-in-ie.html' title='Can not load HMC console in I.E.'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-4655282978102248896</id><published>2009-06-17T17:28:00.000-07:00</published><updated>2009-06-17T17:29:24.687-07:00</updated><title type='text'>lost blog in blogger.com</title><content type='html'>&lt;h3 class="r"&gt;&lt;span style="font-weight: normal;"&gt;I just lost a blog in blogger.com&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="r"&gt;1. &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fbugpy.blogspot.com%2F2009%2F06%2Fez-nim-at-aix-61.html&amp;amp;ei=_4k5SuXjLoiysgPMg8D-Bg&amp;amp;usg=AFQjCNHuRnxIXjPfjzg2rXAuzoghftUNVg&amp;amp;sig2=UB1Nk7tyPlcHculYYUz99A" class="l" onmousedown="return rwt(this,'','','res','1','AFQjCNHuRnxIXjPfjzg2rXAuzoghftUNVg','&amp;amp;sig2=UB1Nk7tyPlcHculYYUz99A')"&gt;&lt;em&gt;bugpy&lt;/em&gt;: &lt;em&gt;EZ NIM&lt;/em&gt; at AIX 6.1&lt;/a&gt;&lt;div style="float: left; min-width: 20px; min-height: 16px;"&gt;&lt;img style="min-width: 16px; max-width: 16px;" alt="" src="http://bugpy.blogspot.com/favicon.ico" width="16" /&gt;&lt;/div&gt;&lt;/h3&gt;&lt;span style="display: inline-block;"&gt;&lt;button style="background: rgb(255, 248, 193) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="w10" title="Promote"&gt;&lt;/button&gt;&lt;button style="background: rgb(255, 248, 193) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="w20" title="Remove"&gt;&lt;/button&gt;&lt;/span&gt;Jun 17, 2009 &lt;b&gt;...&lt;/b&gt; &lt;em style="background: rgb(255, 248, 193) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;EZ NIM&lt;/em&gt; tool in AIX smit menu is indented to be easy for the use. Indeed, it is if you know all the major steps to configure and use &lt;em style="background: rgb(255, 248, 193) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;NIM&lt;/em&gt;. &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;cite&gt;&lt;b&gt;bugpy&lt;/b&gt;.blogspot.com/2009/06/&lt;b&gt;ez&lt;/b&gt;-&lt;b&gt;nim&lt;/b&gt;-at-aix-61.html - 4 hours ago - &lt;/cite&gt;&lt;span class="gl"&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=com.ubuntu:en-US:unofficial&amp;amp;hs=PBl&amp;amp;q=related:bugpy.blogspot.com/2009/06/ez-nim-at-aix-61.html"&gt;Similar&lt;/a&gt; -&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-4655282978102248896?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/4655282978102248896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=4655282978102248896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/4655282978102248896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/4655282978102248896'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/lost-blog-in-bloggercom.html' title='lost blog in blogger.com'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2163665553258500786</id><published>2009-06-17T11:29:00.000-07:00</published><updated>2009-06-17T11:55:38.005-07:00</updated><title type='text'>Switching to previous RDP session</title><content type='html'>When you reconnect the remote desktop session with RDP, you want to reconnect to the same session you left. However, you might not get the same session you useed in the last time, Since other person used it with same user id, or the system just initial a new session for you.&lt;br /&gt;&lt;br /&gt;The obvious and idea solution is to implement active directory to enhance identity management on the machine, so that each user has his/her own unique session, distinguished by one's user id, to avoid session taking over.&lt;br /&gt;&lt;br /&gt;Having said that, in case you logon to the remote desktop session with RDP, and the session is not what you left in the last time. luckly, you still can do one more attempt to switch from current session to the previous left-over session:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Select Terminal Service Manger in the Administrative Tasks&lt;/li&gt;&lt;li&gt;You will see all the available session: the session with the green colored user icon is the one you currently login;other sessions are either used by other users or the one you used in the last time.  the one you used should be in the  "Disconnected" state.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select one session which is in Disconnected state, with supplying password,  you will swtich to the new session.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2163665553258500786?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2163665553258500786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2163665553258500786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2163665553258500786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2163665553258500786'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/switching-to-previous-rdp-session.html' title='Switching to previous RDP session'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2670037688595736209</id><published>2009-06-12T10:25:00.000-07:00</published><updated>2009-06-12T10:58:35.788-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iSCSI'/><category scheme='http://www.blogger.com/atom/ns#' term='AIX 6.1'/><category scheme='http://www.blogger.com/atom/ns#' term='smitty'/><category scheme='http://www.blogger.com/atom/ns#' term='Netapp'/><category scheme='http://www.blogger.com/atom/ns#' term='FAS2020'/><title type='text'>Configure iscsi disk in AIX</title><content type='html'>It may be quite confusing to configure iscsi disk in AIX 6.1 in the very beginning, because you might not get full context on the information center, like http://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.commadmn/doc/commadmndita/iscsi_config.htm&lt;br /&gt;&lt;br /&gt;then, you might confuse on the following commands, files, and menus:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;mkiscsi, lsiscsi, cfgmgr -l&lt;br /&gt;&lt;/li&gt;&lt;li&gt;/etc/iscsi/targets&lt;/li&gt;&lt;li&gt;smitty iscsi&lt;/li&gt;&lt;/ul&gt;finally,  you might confuse on how to get parameters from the iSCSI target server, like netapp.&lt;br /&gt;&lt;br /&gt;In general, I use smitty iscsi for the configuration, and use commands to verify the configuration due to its simpligicity.&lt;br /&gt;&lt;br /&gt;I used netapp FAS2020 for the iSCSI target server, and attempted to configuration iscsi disk in AIX which use a LUN in FAS 2020.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The FAS2020 use 172.,16.1.49:3260, and define by default  initiator group, iqn.1992-08.com.netqapp:sn.xxxxxxxxx&lt;/li&gt;&lt;li&gt;within FAS2020,  an LUN with an initiator group:  iqn.2009-03.net.2web:sn0002&lt;/li&gt;&lt;li&gt;iSCSI protocol device is for the LUN,  so &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Then here is the steps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;define /etc/iscsi/targets&lt;/li&gt;&lt;/ul&gt;172.16.1.49   3260  iqn.1992-08.com.netqapp:sn.xxxxxxxxx&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;smitty iscsi, and choose iSCSI Target Device Parameters in ODM&lt;/li&gt;&lt;/ul&gt;adding iSCSI Target Device in ODM with file /etc/iscsi/targets&lt;br /&gt;&lt;ul&gt;&lt;li&gt;you can verify the setting/change with  the lsiscsi command&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; smitty iscsi, and choose iSCSI Protocol Device&lt;/li&gt;&lt;/ul&gt;change/Show characteristics of an iSCSI Protocol Device with your LUN initiators.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;you can configure the iSCSI disk now with the above setting by using command cfgmgr&lt;/li&gt;&lt;/ul&gt;cfgmgr -l iscsi0&lt;br /&gt;&lt;ul&gt;&lt;li&gt;verify the disk with lspv, you should get new disk&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;other useful URLs:&lt;br /&gt;&lt;br /&gt;http://unix.ittoolbox.com/groups/technical-functional/ibm-aix-l/re-configuring-iscsi-access-with-aix-52-and-ibm-san-1183309&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2670037688595736209?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2670037688595736209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2670037688595736209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2670037688595736209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2670037688595736209'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/configure-iscsi-disk-in-aix.html' title='Configure iscsi disk in AIX'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2032024765657020309</id><published>2009-06-06T18:20:00.001-07:00</published><updated>2009-06-06T18:25:28.875-07:00</updated><title type='text'>French Doors with Phantom Screen</title><content type='html'>&lt;div&gt;I have not opened french doors for months due to bugs.&lt;/div&gt;&lt;div&gt;With Phantom Screen, it is first time to open them without worrying on bugs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_90jTASSjTd4/SisWPDBppgI/AAAAAAAAAtc/7DHvj-FN5Wo/s1600-h/IMG_2413.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_90jTASSjTd4/SisWPDBppgI/AAAAAAAAAtc/7DHvj-FN5Wo/s320/IMG_2413.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5344389830571304450" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2032024765657020309?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2032024765657020309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2032024765657020309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2032024765657020309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2032024765657020309'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/french-doors-with-phantom-screen.html' title='French Doors with Phantom Screen'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_90jTASSjTd4/SisWPDBppgI/AAAAAAAAAtc/7DHvj-FN5Wo/s72-c/IMG_2413.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-8720447414911187371</id><published>2009-06-04T21:29:00.000-07:00</published><updated>2009-06-04T21:38:18.280-07:00</updated><title type='text'>find a kid's book  at palo alto public library</title><content type='html'>&lt;span class="Apple-style-span"  style=" line-height: 16px; font-family:Verdana;"&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;span&gt;It might be quite difficult to find any recommended book in the public library for the kid in certain age. For instance, recommended for 5-years-old kid.  at least I have been struggling in find kid's books, and even hard to find a recommended one.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Verdana;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px; font-family:Verdana;"&gt;&lt;span&gt;&lt;span&gt;Recently I found a way to solve this difficulty at Palo Alto public library by using its “ Staff Picks” booklist under "Best Seller List" catalog. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Verdana;"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px; font-family:Verdana;"&gt;&lt;span&gt;&lt;span&gt; here is the steps:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;ol start="1" type="1" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; line-height: 16px; "&gt;Use “Best Seller Lists Browse” as search catalog, and &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; line-height: 16px; "&gt;Search for “Staff Picks”&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; line-height: 16px; "&gt;Selects the right pick to shows the list of book titlesStaff Picks - Kids - Help For Parents: Picture Books on Topics of Interest to Parents of Young Children is for 5 year old kid in general.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-top: 0px; margin-bottom: 0px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px; font-family:Verdana;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-8720447414911187371?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/8720447414911187371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=8720447414911187371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/8720447414911187371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/8720447414911187371'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/find-kids-book-at-palo-alto-public.html' title='find a kid&apos;s book  at palo alto public library'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-8325619844874518865</id><published>2009-06-02T05:41:00.001-07:00</published><updated>2009-06-02T06:00:32.539-07:00</updated><title type='text'>Inspired by Google Chrome Comic book</title><content type='html'>I attended Google IO event last week. Surprisingly, each attendee got a Google phone.   I also got a Google Chrome comic book due to earlier registration.&lt;br /&gt;&lt;br /&gt;Although I heard story about chrome comic in last year, I overlooked at it in the beginning.  While reading it page by page, I found it quite entertaining; I must say that it expressed well on the technical motivation and product advantage. Furthermore, the personnel with different posture made story vivid, thereby the story is stick to my mind.  I noticed that most of them liked to cross their arms.  &lt;br /&gt;&lt;br /&gt;Comparing to bullet points in PowerPoint, Comic is a new way of communicate with young audience:  it develops plot or thought process to the audience;  it attracts audience' attention by  applying wide-angle, or narrow angle for big picture or for details,&lt;br /&gt;&lt;br /&gt;the comic is good way to convey the vision and the message, just like cartoon movie from Walt Disney.   How about practice it by drawing couple of comic slice on daily life?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-8325619844874518865?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/8325619844874518865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=8325619844874518865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/8325619844874518865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/8325619844874518865'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/inspired-by-google-chrome-comic-book.html' title='Inspired by Google Chrome Comic book'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-4534344266333092438</id><published>2009-06-02T05:36:00.001-07:00</published><updated>2009-06-02T05:38:51.487-07:00</updated><title type='text'>COM32 professor</title><content type='html'>Once upon  a time,  there is class com32 at S. campus.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_90jTASSjTd4/SiUdLzNMtBI/AAAAAAAAAss/ASOtYhVb4XE/s1600-h/IMG_2387.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_90jTASSjTd4/SiUdLzNMtBI/AAAAAAAAAss/ASOtYhVb4XE/s320/IMG_2387.JPG" alt="" id="BLOGGER_PHOTO_ID_5342708621506294802" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-4534344266333092438?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/4534344266333092438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=4534344266333092438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/4534344266333092438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/4534344266333092438'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/com32-professor.html' title='COM32 professor'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_90jTASSjTd4/SiUdLzNMtBI/AAAAAAAAAss/ASOtYhVb4XE/s72-c/IMG_2387.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2480254518268700250</id><published>2009-06-02T04:55:00.000-07:00</published><updated>2009-06-02T05:02:31.171-07:00</updated><title type='text'>Garbage Can in the school</title><content type='html'>Once upon a time,  Garbage Can was public used in the school.&lt;br /&gt;&lt;br /&gt;1.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_90jTASSjTd4/SiUT6acqnDI/AAAAAAAAAsU/Zz2h_6VNJDs/s1600-h/IMG_2384.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_90jTASSjTd4/SiUT6acqnDI/AAAAAAAAAsU/Zz2h_6VNJDs/s320/IMG_2384.JPG" alt="" id="BLOGGER_PHOTO_ID_5342698427197856818" border="0" /&gt;&lt;/a&gt;   &lt;br /&gt;2.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_90jTASSjTd4/SiUUChA-25I/AAAAAAAAAsc/X749p4APY6w/s1600-h/IMG_2385.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_90jTASSjTd4/SiUUChA-25I/AAAAAAAAAsc/X749p4APY6w/s320/IMG_2385.JPG" alt="" id="BLOGGER_PHOTO_ID_5342698566399744914" border="0" /&gt; &lt;/a&gt;&lt;br /&gt;3.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_90jTASSjTd4/SiUUSB0GH7I/AAAAAAAAAsk/XFJEn8N9A5k/s1600-h/IMG_2386.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_90jTASSjTd4/SiUUSB0GH7I/AAAAAAAAAsk/XFJEn8N9A5k/s320/IMG_2386.JPG" alt="" id="BLOGGER_PHOTO_ID_5342698832902102962" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2480254518268700250?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2480254518268700250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2480254518268700250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2480254518268700250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2480254518268700250'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/garbage-can-in-school.html' title='Garbage Can in the school'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_90jTASSjTd4/SiUT6acqnDI/AAAAAAAAAsU/Zz2h_6VNJDs/s72-c/IMG_2384.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-8667399667741847946</id><published>2009-06-01T20:35:00.000-07:00</published><updated>2009-06-01T20:42:48.123-07:00</updated><title type='text'>Paint Garage Floor ( a failure project )</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_90jTASSjTd4/SiSfl2kS4nI/AAAAAAAAAsM/aRIQJan_bzc/s1600-h/IMG_2342.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_90jTASSjTd4/SiSfl2kS4nI/AAAAAAAAAsM/aRIQJan_bzc/s320/IMG_2342.JPG" alt="" id="BLOGGER_PHOTO_ID_5342570530619974258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Paint Garage Floor ( ~  550 SF for 2 car garage )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I choose home depot for paint since paint's price is cheaper. total cost is ~150. &lt;/div&gt;  &lt;ul&gt;&lt;li&gt;Behr Floor cleaner(1 bottle)&lt;/li&gt;&lt;li&gt;Behr Concrete bonding (optional, 2 gallons), and&lt;/li&gt;&lt;li&gt;Behr 1-part epoxy paint ( silver grey, 2 gallons) from home depot  &lt;/li&gt;&lt;/ul&gt;   &lt;div&gt; &lt;/div&gt;  &lt;div&gt;Steps  and Hours spent&lt;/div&gt;  &lt;ol&gt;&lt;li&gt;( 1.5 hour ) Clean up and wash the floor generally. the pressure washer does not work when you use water vault from heating tank, so It takes time and uses more water to wash the floor&lt;/li&gt;&lt;li&gt;( 1 hour ) Clean up floor with Behr Cleaner, 1 bottle cleaner dilutes with 5 gallons of water.   the cleaner apply to floor for 10-20 minute&lt;br /&gt;&lt;/li&gt;&lt;li&gt;( 0.5 hour ) Rinse the floor&lt;br /&gt;&lt;/li&gt;&lt;li&gt;( 2 hours )  Dry up.  I use fan to accelerate drying process&lt;br /&gt;&lt;/li&gt;&lt;li&gt;( 1.5 hours ) Apply Concrete bonding adherence.  Although I used it, I would not use in next time since it is optional; even worse, I ruined part of it by stepping on it ( it is very sticky,  DO NOT step directly on it,  you can apply 1-part epoxy paint on it,  then step on the paint to protect the bonding)  &lt;br /&gt;&lt;/li&gt;&lt;li&gt;( 8 hours ) Dry up over night.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;( 2 hours ) Apply first coat of 1-part epoxy paint.  ( please wash the roller and other tools for later use&lt;br /&gt;&lt;/li&gt;&lt;li&gt;( 1 hour )  Apply second coat of 1-part epoxy paint.  since I found the pain is too THIN in some area,  or some paint are cracked&lt;/li&gt;&lt;li&gt;( 3 days ) Dry up  before  heavy traffic&lt;/li&gt;&lt;li&gt;( so far 2 weeks )  still dry up .....&lt;/li&gt;&lt;/ol&gt;          &lt;div&gt; &lt;/div&gt;  After having painted walls and the ceiling, you will felt it is easy job to paint the floor, However,  any minor mistake will unbearable Since we heavily use floor daily than walls and the ceiling.&lt;br /&gt;&lt;br /&gt;Q&amp;amp;A&lt;br /&gt;1. Does contractor do better Job ?   maybe,  but it will cost ~1000USD.&lt;br /&gt;2. Alternative products?   http://ucoatit.com/pgs/main.htm maybe do better job ;  I am interested in COSTCO's garage flooring tile,  2 dollars per squre feet,  cost ~1000USD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-8667399667741847946?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/8667399667741847946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=8667399667741847946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/8667399667741847946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/8667399667741847946'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2009/06/paint-garage-floor-failure-project.html' title='Paint Garage Floor ( a failure project )'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_90jTASSjTd4/SiSfl2kS4nI/AAAAAAAAAsM/aRIQJan_bzc/s72-c/IMG_2342.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-5297055092811821767</id><published>2008-11-27T08:56:00.000-08:00</published><updated>2008-11-27T09:12:17.606-08:00</updated><title type='text'>recover network setting after stop SSL VPN tunnel.</title><content type='html'>I use ubuntu in my laptop for the work, and access corporate network with SSL VPN "network connection" .    it works well on establishing tunneling, and maintaining connection. the "network connection" creates a tunnel interface  tun0-00 with alllocated IP from coportation network, and  addes coporates defaut gateway in the routing table along with my home default gateway. It works well .&lt;br /&gt;However,   I alway lost internet connection after I signout or  stop "network connection".  I found that "network connection" not only deleted coporate default gateway entry, but also deleted my home default gateway entry, and caused no default gateway setting.&lt;br /&gt;Big issue?  In windows, It may be,  however, in ubuntu, I do not think so. To recover all the network setting include default gateway entery, I use a single command :   /etc/init.d/networking restart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-5297055092811821767?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/5297055092811821767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=5297055092811821767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5297055092811821767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5297055092811821767'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2008/11/recover-network-setting-after-stop-ssl.html' title='recover network setting after stop SSL VPN tunnel.'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-1685839442361753040</id><published>2008-11-07T16:15:00.000-08:00</published><updated>2008-11-07T16:19:24.754-08:00</updated><title type='text'>New iPod apps</title><content type='html'>The Top cool ipod apps I used so far:&lt;br /&gt;1. note2self,   I can send my voice greeting to my friends instantly&lt;br /&gt;2. say who,    voice recognition app,  I got person's phone number by just saying his/her name&lt;br /&gt;3. Pandora,    instant music&lt;br /&gt;4. Camera,     I sent pic instantly to my friend with email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-1685839442361753040?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/1685839442361753040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=1685839442361753040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/1685839442361753040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/1685839442361753040'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2008/11/new-ipod-apps.html' title='New iPod apps'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2562914823289270061</id><published>2008-11-07T16:05:00.000-08:00</published><updated>2008-11-07T16:15:24.970-08:00</updated><title type='text'>cool nmap</title><content type='html'>I like to use nmap to scan the servers in the lab&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Starting Nmap 4.53 ( http://insecure.org ) at 2008-11-07 16:03 PST&lt;br /&gt;Interesting ports on server( x.x.x.x):&lt;br /&gt;Not shown: 1707 closed ports&lt;br /&gt;PORT     STATE SERVICE&lt;br /&gt;21/tcp   open  ftp&lt;br /&gt;23/tcp   open  telnet&lt;br /&gt;80/tcp   open  http&lt;br /&gt;280/tcp  open  http-mgmt&lt;br /&gt;515/tcp  open  printer&lt;br /&gt;631/tcp  open  ipp&lt;br /&gt;9100/tcp open  jetdirect&lt;br /&gt;&lt;br /&gt;Nmap done: 1 IP address (1 host up) scanned in 10.579 seconds&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2562914823289270061?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2562914823289270061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2562914823289270061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2562914823289270061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2562914823289270061'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2008/11/cool-nmap.html' title='cool nmap'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-3273269833383586532</id><published>2008-08-26T21:33:00.000-07:00</published><updated>2008-08-26T21:45:14.738-07:00</updated><title type='text'>walkie talkie at home</title><content type='html'>living in condo townhouse is not as convenient as living in single family house. in California, the popular single family is one flat floor, and condo townhouse normally is multiple floors.  we live in 3 floors condo townhouse.  recently we found that it is inconvenient for echo between person when they are in different rooms which in different floor in our case.  one time, my wife is calling me for help from 2nd floor bath room, and I barely heard her calling since I am in the kitchen and kitchen fan is on.  if  I am in 3rd floor study room, she must make it  real loud from first floor. sometime, she sent her royal army, i.e. my daughter,  to carry message to me, this kind of service is off after 9:00p.m. since my daughter get into sleep.  How to solve this inconvenient situation?  We thought about walkie talkie.  walkie talkie is definitely a good idea; however,  today we just found a good alternative way:  just carry the cellphone, and put it into speaker mode.  Since talk  time is free between family,  we are enjoy this feature due to free! &lt;br /&gt;I will always carry my cell phone, even in the house.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-3273269833383586532?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/3273269833383586532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=3273269833383586532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/3273269833383586532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/3273269833383586532'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2008/08/walkie-talkie-at-home.html' title='walkie talkie at home'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-584330507904025659</id><published>2008-05-31T16:16:00.000-07:00</published><updated>2008-05-31T16:18:50.009-07:00</updated><title type='text'>google IO 2008</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Keynote Speaker - Marissa Mayer&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Imagination is a musicale&lt;span style=""&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Muscle need exercise periodically, so do imagination &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Exercise Imagination and build product prototype:&lt;span style=""&gt;  &lt;/span&gt;Google book,&lt;span style=""&gt;  &lt;/span&gt;Google map street view&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Numbers, numbers, numbers&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Accuracy for prediction&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Quantity and quality&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Test methodology : &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Split&lt;/st1:place&gt;&lt;/st1:City&gt; A/B&lt;span style=""&gt;  &lt;/span&gt;testing&lt;span style=""&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Urgent drown Important&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;50% of go-live product came from 20% time&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 24pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Accuracy for prediction&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p style="font-weight: bold;" class="MsoNormal"&gt;URLs&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;You Tube&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://code.google.com/p/hello-youtube/"&gt;http://code.google.com/p/hello-youtube/&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Open Social Lab &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://code.google.com/apis/opensocial/articles/tutorial/io.html"&gt;http://code.google.com/apis/opensocial/articles/tutorial/io.html&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://chrisschalk/"&gt;http://chrisschalk&lt;/a&gt; &lt;span style=""&gt;   &lt;/span&gt;-&lt;span style=""&gt;  &lt;/span&gt;evangelist web site&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://incubator.apache.org/shindig/"&gt;http://incubator.apache.org/shindig/&lt;/a&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://sites.google.com/a/opensocial.org/opensocial/"&gt;http://sites.google.com/a/opensocial.org/opensocial/&lt;/a&gt; &lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;opensocial&lt;/span&gt;.org&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Map &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;API&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://imagine-it.org/google/articles/mapsapi_codelab.html"&gt;http://imagine-it.org/google/articles/mapsapi_codelab.html&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://imagine-it.org/google/articles/mapsapi_codelab2.html"&gt;http://imagine-it.org/google/articles/mapsapi_codelab2.html&lt;/a&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Gears &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;API&lt;/span&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://imagine-it.org/google/articles/gears_codelab.html"&gt;http://imagine-it.org/google/articles/gears_codelab.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-584330507904025659?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/584330507904025659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=584330507904025659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/584330507904025659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/584330507904025659'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2008/05/google-io-2008.html' title='google IO 2008'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-6045427781900481097</id><published>2007-08-02T11:29:00.000-07:00</published><updated>2007-08-02T12:00:19.345-07:00</updated><title type='text'>use * for string duplication</title><content type='html'>I have not used * operation to duplicate string until recently:&lt;br /&gt;valueStr2 "( %s" + ",%s"*(len(dict)-1)+")"&lt;br /&gt;&lt;br /&gt;rather than the following c-type implementation&lt;br /&gt;tempL = []&lt;br /&gt;for i in dict.keys():&lt;br /&gt;   tempL.append("%s")&lt;br /&gt;valueStr2 = "(" + ",".join(tempL)+")"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-6045427781900481097?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/6045427781900481097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=6045427781900481097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/6045427781900481097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/6045427781900481097'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/08/use-for-string-duplication.html' title='use * for string duplication'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-9180470068814060599</id><published>2007-07-24T11:57:00.000-07:00</published><updated>2007-07-24T12:00:09.305-07:00</updated><title type='text'>restart python to get newly imported module</title><content type='html'>newly imported python module by using easy_install can not be imported instantly. you have to restart the python session to import the new module properly&lt;br /&gt;C:\Documents and Settings\mwang&gt;python&lt;br /&gt;Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on&lt;br /&gt;win32&lt;br /&gt;&gt;&gt;&gt; import MySQLdb&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;  File "&lt;stdin&gt;", line 1, in &lt;module&gt;&lt;br /&gt;ImportError: No module named MySQLdb&lt;br /&gt;&gt;&gt;&gt; quit&lt;br /&gt;Use quit() or Ctrl-Z plus Return to exit&lt;br /&gt;&gt;&gt;&gt; quit()&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\mwang&gt;python&lt;br /&gt;Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on&lt;br /&gt;win32&lt;br /&gt;Type "help", "copyright", "credits" or "license" for more information.&lt;br /&gt;&gt;&gt;&gt; import MySQLdb&lt;br /&gt;&gt;&gt;&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-9180470068814060599?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/9180470068814060599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=9180470068814060599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/9180470068814060599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/9180470068814060599'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/restart-python-to-get-newly-imported.html' title='restart python to get newly imported module'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-992499658559995086</id><published>2007-07-13T15:25:00.000-07:00</published><updated>2007-07-13T15:36:03.179-07:00</updated><title type='text'>a quick/good example of using  the python/twill</title><content type='html'>Today I have a issue on playing http request by using one of load stress testing tool/appliance, and I suspected that the cookie setting in that appliance is not working properly: 2 cookies were set during the requst, and I expected more cookie to be set.  I may ask around the developer for cookie information, but it will take time to find the right resource. Fortunately,  the following  9 lines code saves my time:&lt;br /&gt;&lt;br /&gt;from twill import get_browser&lt;br /&gt;from twill.commands import *&lt;br /&gt;import sys&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;b = get_browser()&lt;br /&gt;b.go("http://www.example.com/foo")&lt;br /&gt;show()&lt;br /&gt;print "======="&lt;br /&gt;show_cookies()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;the results surprisingly tells me that 8 cookies was set after the request.  the next thing is to submit an service request to the vendor,  provides my expectation with my findings,  then expected solution soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-992499658559995086?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/992499658559995086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=992499658559995086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/992499658559995086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/992499658559995086'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/quickgood-example-of-using-pythontwill.html' title='a quick/good example of using  the python/twill'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-7484293841496666735</id><published>2007-07-11T13:16:00.000-07:00</published><updated>2007-07-11T13:17:43.776-07:00</updated><title type='text'>iter() sample</title><content type='html'>the iter() is more like generator,  it will return an item every time you call it. here is the different output by using list and iter()&lt;br /&gt;&lt;br /&gt;it = range(10)&lt;br /&gt;print it&lt;br /&gt;b = zip(it, it)&lt;br /&gt;print b&lt;br /&gt;&lt;br /&gt;it = iter(range(10))&lt;br /&gt;b = zip(it, it)&lt;br /&gt;print b&lt;br /&gt;&lt;br /&gt;[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]&lt;br /&gt;[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-7484293841496666735?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/7484293841496666735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=7484293841496666735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/7484293841496666735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/7484293841496666735'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/iter-sample.html' title='iter() sample'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-5940529506503234741</id><published>2007-07-09T14:10:00.000-07:00</published><updated>2007-07-09T14:13:58.541-07:00</updated><title type='text'>Twill Tips -Form</title><content type='html'>Although we may use Form#, for instance "2" in the fv to update item value, it will be unpredictable if the form order or the number the form is different based on dynamic content,  it will be hard to select the right form# for fv function.   the good news is that we can use form name rather than form # in fv to specify which form we want to update.&lt;br /&gt;&lt;br /&gt;Form name=editPage (#2)&lt;br /&gt;## ## __Name__________________ __Type___ __ID________ __Value__________________&lt;br /&gt;1     cancelURL                hidden    cancelURL    /home/home.jsp&lt;br /&gt;2     retURL                   hidden    retURL       /home/home.jsp&lt;br /&gt;&lt;br /&gt;fv("editPage", "p19", "12")&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-5940529506503234741?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/5940529506503234741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=5940529506503234741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5940529506503234741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5940529506503234741'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/twill-tips-form.html' title='Twill Tips -Form'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-518599130519405038</id><published>2007-07-09T10:21:00.000-07:00</published><updated>2007-07-09T10:26:44.529-07:00</updated><title type='text'>checkbox value in Twill</title><content type='html'>in the twill, the value of the de-selected box of the item is  [], while the value of selected box is ['1']&lt;br /&gt;&lt;br /&gt;33    p23                      checkbox  p23          [] of ['1']&lt;br /&gt;34    p22                      checkbox  p22          ['1'] of ['1']&lt;br /&gt;&lt;br /&gt;the proper way to deselect the default checkbox, for instacne p22, is to&lt;br /&gt;fv("3", "p22", "false").&lt;br /&gt;&lt;br /&gt;if we use fv("3", "p22", "")  to perform unselected checkbox, you may get the following error message:&lt;br /&gt;&lt;br /&gt;  File "c:\python25\lib\site-packages\twill-0.9b1-py2.5.egg\twill\utils.py", line 164, in make_boolean&lt;br /&gt;    raise Exception("unable to convert '%s' into true/false..." % (value,))&lt;br /&gt;Exception: unable to convert '' into true/false...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You will know that you should use true or false to do select or deselect on the checkbox in twill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-518599130519405038?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/518599130519405038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=518599130519405038' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/518599130519405038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/518599130519405038'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/checkbox-value-in-twill.html' title='checkbox value in Twill'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2129094578832404321</id><published>2007-07-06T17:40:00.000-07:00</published><updated>2007-07-06T17:45:55.411-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twill'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Twill Tips  - Links</title><content type='html'>Assumed that you have some links on html page, you may want to find  and go to the url ended with "/items" by using twill in the python command line environment:&lt;br /&gt;&lt;br /&gt;a=showlinks()&lt;br /&gt;for i in a:&lt;br /&gt;   if i.url.find("/items") &gt; 0 :&lt;br /&gt;       URL_items=i.absolute_url&lt;br /&gt;&lt;br /&gt;print "=====", URL_items&lt;br /&gt;b.go(URL_items)&lt;br /&gt;&lt;br /&gt;a contains Link Object, which has url and absolute_url attribute.  we use url attribute to search for "/items", then access the page by using absolute_url attribute&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2129094578832404321?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2129094578832404321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2129094578832404321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2129094578832404321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2129094578832404321'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/twill-tips-links.html' title='Twill Tips  - Links'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-5044065902722503827</id><published>2007-07-03T09:47:00.003-07:00</published><updated>2007-07-03T09:47:51.966-07:00</updated><title type='text'>nice Python</title><content type='html'>&lt;div&gt;after polishing my skill set related to c developement, I am comfortable about setup python environment, especially build from source code, in linux enviroment or in windows environment.&lt;/div&gt; &lt;div&gt;opensource gave us an opportunity to have a try, but it is not free. time is value. we can keep trying different opensource, but we may end up with having nothing. I think have 2 solutions to deal with opensource:&lt;/div&gt; &lt;div&gt;1. evaluate the necessary open source.&lt;/div&gt; &lt;div&gt;2. have a build script to speed up open source environment settting.&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;I likes python easy_install idea, which has similar idea as eclipse update.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-5044065902722503827?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/5044065902722503827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=5044065902722503827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5044065902722503827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5044065902722503827'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/nice-python.html' title='nice Python'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-5112666394145102074</id><published>2007-07-03T09:47:00.001-07:00</published><updated>2007-07-03T09:47:25.883-07:00</updated><title type='text'>WAS CE installation</title><content type='html'>&lt;div&gt;&lt;a href="http://publib.boulder.ibm.com/wasce/V1.1.0/en/Tasks/Install/Installing.html"&gt;http://publib.boulder.ibm.com/wasce/V1.1.0/en/Tasks/Install/Installing.html&lt;/a&gt; is a good reference was ce 1.1.0 installation. here is highlight steps&lt;/div&gt; &lt;div&gt;1. extract tar file&lt;/div&gt; &lt;div&gt;2. rpm -Uvh ibm-java2-i386-sdk-5.0-3.0.i386.rpm&lt;/div&gt; &lt;div&gt;3. add the java's installation path to PATH&lt;/div&gt; &lt;div&gt;/opt/ibm/java2-i386-50/bin &lt;/div&gt; &lt;div&gt;4.wasce_setup-1.1.0.1-unix.bin -console&lt;/div&gt; &lt;div&gt;5. update the following environment variable in /root/.bashrc:&lt;/div&gt; &lt;div&gt;export BASEDIR=/opt/wasce&lt;br /&gt;export WASCE_HOME=/opt/wasce&lt;br /&gt;export GERONIMO_HOME=/opt/wasce&lt;br /&gt;export GERONIMO_TMPDIR=/opt/wasce&lt;br /&gt;export GERONIMO_BASE=/opt/wasce&lt;br /&gt;&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;6. . /root/.bashrc to refresh the variables&lt;/div&gt; &lt;div&gt;7. [root@localhost bin]# ./startup.sh&lt;br /&gt;Using GERONIMO_BASE:   /opt/wasce&lt;br /&gt;Using GERONIMO_HOME:   /opt/wasce&lt;br /&gt;Using GERONIMO_TMPDIR: /opt/wasce&lt;br /&gt;Using JRE_HOME:        /opt/ibm/java2-i386-50/jre&lt;br /&gt;Using GERONIMO_OUT:    /opt/wasce/var/log/geronimo.out&lt;/div&gt; &lt;div&gt;Geronimo started in background. PID: 11230&lt;br /&gt;&lt;/div&gt; &lt;div&gt;8.  access to adminsonole: &lt;a href="http://9.30.182.181:8080/"&gt;http://9.30.182.181:8080/&lt;/a&gt;  system/manager is default password&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-5112666394145102074?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/5112666394145102074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=5112666394145102074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5112666394145102074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5112666394145102074'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/was-ce-installation.html' title='WAS CE installation'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2251910271603116086</id><published>2007-07-03T09:46:00.001-07:00</published><updated>2007-07-03T09:46:47.122-07:00</updated><title type='text'>DB V9 uninstall on AIX</title><content type='html'>&lt;p&gt; db2 V9 installation does not show in AIX's lslpp.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="mailto:root@hvwsp5gv1c2"&gt;root@hvw2&lt;/a&gt; # &lt;db2&gt;/V9.1/instance/dasdrop&lt;br /&gt;SQL4410W  The DB2 Administration Server is not active.&lt;br /&gt;DBI1070I Program dasdrop completed successfully.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;use the following way to remove it&lt;br /&gt;db2stop in any db2instance&lt;br /&gt;remove any db2 instance, otherwise de-installation will fail&lt;br /&gt;&lt;db2-home&gt;/V9.1/install/db2_deinstall -a -l /tmp/db2V9_uninstall.log&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2251910271603116086?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2251910271603116086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2251910271603116086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2251910271603116086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2251910271603116086'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/db-v9-uninstall-on-aix.html' title='DB V9 uninstall on AIX'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-8905255218281974825</id><published>2007-07-03T09:45:00.003-07:00</published><updated>2007-07-03T09:45:54.065-07:00</updated><title type='text'>python 2.5</title><content type='html'>&lt;div&gt;Here is the key steps for Python 2.5 installation on RHEL 4.0 from the &lt;a href="http://www.python.org/download/releases/2.5/"&gt;http://www.python.org/download/releases/2.5/&lt;/a&gt;&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;the installation location is /usr/local/bin/Python2.5&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;All others&lt;/strong&gt; should download either &lt;a href="http://www.python.org/ftp/python/2.5/Python-2.5.tgz"&gt;&lt;u&gt;&lt;span style="color:#0000ff;"&gt;python-2.5.tgz&lt;/span&gt;&lt;/u&gt;&lt;/a&gt; or &lt;a href="http://www.python.org/ftp/python/2.5/Python-2.5.tar.bz2"&gt;&lt;u&gt;&lt;span style="color:#0000ff;"&gt;python-2.5.tar.bz2&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;, the source archive. The tar.bz2 is considerably smaller, so get that one if your system has the &lt;a href="http://www.bzip.org/"&gt;&lt;u&gt;&lt;span style="color:#0000ff;"&gt;appropriate tools&lt;/span&gt;&lt;/u&gt;&lt;/a&gt; to deal with it. Unpack it with &lt;tt&gt;&lt;span&gt;tar&lt;/span&gt; &lt;span&gt;-zxvf&lt;/span&gt; &lt;span&gt;Python-2.5.tgz&lt;/span&gt;&lt;/tt&gt; (or &lt;tt&gt;&lt;span&gt;bzcat&lt;/span&gt; &lt;span&gt;Python-2.5.tar.bz2&lt;/span&gt; &lt;span&gt;|&lt;/span&gt; &lt;span&gt;tar&lt;/span&gt; &lt;span&gt;-xf&lt;/span&gt; &lt;span&gt;-&lt;/span&gt;&lt;/tt&gt;). Change to the Python-2.5 directory and run the &lt;strong&gt;"./configure&lt;/strong&gt;", "&lt;strong&gt;make&lt;/strong&gt;", "make install" commands to compile and install Python. &lt;/p&gt; &lt;p&gt;Since this is a new version of Python, you may want to use the "&lt;strong&gt;make altinstall&lt;/strong&gt;" command instead of "make install" - this will install a "python2.5" binary without touching the existing "python" binariy &lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;p&gt;the cpp pacage is on RHEL CD2, glibc and gcc package is on RHEL CD3 &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-8905255218281974825?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/8905255218281974825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=8905255218281974825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/8905255218281974825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/8905255218281974825'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/python-25.html' title='python 2.5'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-6565732309734371077</id><published>2007-07-03T09:45:00.001-07:00</published><updated>2007-07-03T09:45:25.268-07:00</updated><title type='text'>RHEL 5.0 Beta XEN installation</title><content type='html'>&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:100%;color:#000000;"&gt;using virt-install to install RHEL4.0 xen guest,   the following error message was shown:&lt;/span&gt;  &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:100%;color:#000000;"&gt;Starting install...&lt;/span&gt;  &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:100%;color:#000000;"&gt;ERROR:&lt;span&gt;  &lt;/span&gt;Invalid NFS location given: [Errno 2] No such file or directory: '/var/lib/xen/xennfs.XfOkIq/images/xen/vmlinuz'&lt;/span&gt;  &lt;/p&gt;&lt;p&gt;   &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:100%;color:#000000;"&gt;because there is no xen directories under images, since RHEL4.4 is not XEN ready...&lt;/span&gt;  &lt;/p&gt;&lt;p&gt; according to &lt;a href="http://people.redhat.com/riel/RHEL4-Xen-HOWTO"&gt;http://people.redhat.com/riel/RHEL4-Xen-HOWTO&lt;/a&gt; , currently we can not use virt-install to install RHEL4.4 , the image should be installed in someway, the apply the virtualization kernel RPM which is available in &lt;a href="http://people.redhat.com/%7Ejbaron/rhel4/RPMS.kernel/"&gt;http://people.redhat.com/~jbaron/rhel4/RPMS.kernel/&lt;/a&gt; .  &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:100%;color:#000000;"&gt;not sure whether &lt;a href="http://people.redhat.com/%7Ejbaron/rhel4/RPMS.kernel/"&gt;http://people.redhat.com/~jbaron/rhel4/RPMS.kernel/&lt;/a&gt; shows the RPM for RHEL 4.4 guest VM, or RHEL4.4 XEN host.&lt;/span&gt;  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-6565732309734371077?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/6565732309734371077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=6565732309734371077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/6565732309734371077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/6565732309734371077'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/rhel-50-beta-xen-installation.html' title='RHEL 5.0 Beta XEN installation'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-131017629743927454</id><published>2007-07-03T09:44:00.003-07:00</published><updated>2007-07-03T09:44:52.068-07:00</updated><title type='text'>Convert Cert between PEM and keytool</title><content type='html'>&lt;div&gt;I have been using CERT for a while. I mainly knew IBM keyman tool to do the cert related tasks. recently I exposed to opensource environment. I just realized the powerful openssl and the diference between cert format:&lt;/div&gt; &lt;div&gt; apache is using PEM based cert, while others may use java keytool ( for instance WebSphere Application Server Community edition), I was able to porting cert from keytool into apache by following a good web reference doc : &lt;a href="http://mark.foster.cc/kb/openssl-keytool.html"&gt;http://mark.foster.cc/kb/openssl-keytool.html&lt;/a&gt;&lt;/div&gt; &lt;div&gt;1.1 keytool export cert&lt;/div&gt; &lt;div&gt;1.2 use exportPriv to export private key&lt;/div&gt; &lt;div&gt;1.3 use openssl verify command to verify my exported cert&lt;/div&gt; &lt;div&gt;1.4 use openssl s_server -cert server.crt -key private.key -www to test whether the cert and key works. the command will open port 4433 for https accessing&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-131017629743927454?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/131017629743927454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=131017629743927454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/131017629743927454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/131017629743927454'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/convert-cert-between-pem-and-keytool.html' title='Convert Cert between PEM and keytool'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-1943279586196507909</id><published>2007-07-03T09:44:00.001-07:00</published><updated>2007-07-03T09:44:13.825-07:00</updated><title type='text'>xen and xen0 rpm</title><content type='html'>&lt;div&gt;if the kernel-xen version is higher,  in order to acommadate lower version of xenU,  we can install xen0 alternative.&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;[root@localhost boot]# rpm -Uvh /wmj/kernel-xen-2.6.19-1.2288.2.4.fc5.i686.rpm&lt;br /&gt;Preparing...                ########################################### [100%]&lt;br /&gt;package kernel-xen-2.6.19-1.2911.fc6 (which is newer than kernel-xen-2.6 .19-1.2288.2.4.fc5) is already installed&lt;br /&gt;package kernel-xen-2.6.19-1.2911.6.5.fc6 (which is newer than kernel-xen -2.6.19-1.2288.2.4.fc5) is already installed&lt;br /&gt;[root@localhost boot]# rpm -Uvh /wmj/kernel-xen0-2.6.19-1.2288.2.4.fc5.i686.rpm&lt;br /&gt;Preparing...                ########################################### [100%]&lt;br /&gt;  1:kernel-xen0            ########################################### [100%]&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;vmlinuz-2.6.19-1.2288.2.4.fc5xen0&lt;/div&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-1943279586196507909?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/1943279586196507909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=1943279586196507909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/1943279586196507909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/1943279586196507909'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/xen-and-xen0-rpm.html' title='xen and xen0 rpm'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2080952512760651806</id><published>2007-07-03T09:43:00.001-07:00</published><updated>2007-07-03T09:43:46.458-07:00</updated><title type='text'>VMware  linux guest VM to see shared folder</title><content type='html'>&lt;div&gt;It is straightforward for VMware windows guest VM to use shared folder from host, however, it is not the case for the VMware linux guest. Although in VMware linux guest, /mnt/hgfs is default mount point for any shared folder, it was not created by default; the vmware-tools also not installed by default. without these 2 elements, we are not able to use shared folder feature in VMware linux guest, the VMware workstation user guide did not document it. here is my summary of action based on VMTN's discussion threads:&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;1.  install VMware-tools&lt;/div&gt; &lt;div&gt; by attach linux.iso and click ' install vmware tools' in the VMWare menu/ VM tab. you will get VMware-tools icon on your Linux guest VM GUI. you will be able to install RPM.&lt;/div&gt; &lt;div&gt;2.  mkdir  /mount/hgfs&lt;/div&gt; &lt;div&gt;     the default mount point for shared folder.&lt;/div&gt; &lt;div&gt;3.  if you run /etc/init.d/vmware-tools restart,  you may get warning on ' your VMware tools was not configured properly'&lt;br /&gt;1. run /usr/bin/vmware-tools-configure.pl, please run it in local machine, rather remote session. the configure script will detect it for you.&lt;br /&gt;2. after the configuration, you may use /usr/bin/vmware-toolbox to invoke VMware Toolbox for audio, shrink etc feature.&lt;br /&gt;3. at this moment, the NIC eth0 is disconnected. in order to use vmxnet driver, run the following commands:&lt;br /&gt;  /etc/init.d/network stop&lt;br /&gt;  rmmod pcnet32&lt;br /&gt;  rmmod vmxnet&lt;br /&gt;  depmod -a&lt;br /&gt;  modprobe vmxnet&lt;br /&gt;  /etc/init.d/network start&lt;br /&gt;4. the /mnt/hfgs got shared folder.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2080952512760651806?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2080952512760651806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2080952512760651806' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2080952512760651806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2080952512760651806'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/vmware-linux-guest-vm-to-see-shared.html' title='VMware  linux guest VM to see shared folder'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-5108427063534726150</id><published>2007-07-03T09:42:00.002-07:00</published><updated>2007-07-03T09:43:01.755-07:00</updated><title type='text'>a unix shell test</title><content type='html'>&lt;div&gt;if I have the following entries in the /root/.bashrc:&lt;/div&gt; &lt;div&gt; export PATH=/opt/ibm/java2-i386-50/bin;$PATH:/wmj&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;then run . /root/.bashrc&lt;br /&gt;-bash: /opt/ibm/java2-i386-50/bin:/wmj: No such file or directory&lt;br /&gt;&lt;/div&gt; &lt;div&gt;why I will got the following error &lt;/div&gt; &lt;div&gt;[root@localhost bin]# ls -al /opt/IBM/WPS/profiles/ccmdb/bin&lt;br /&gt;-bash: ls: command not found&lt;br /&gt;&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;Answer: the typerr ; before the $PATH should be changed to : under unix to delimiter each individual path. the typerr cause the system environment $PATH to be /opt/ibm/java2-i386-50/bin, since ls is not under /opt/ibm/java2-i386-50/bin, the error is raised.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-5108427063534726150?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/5108427063534726150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=5108427063534726150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5108427063534726150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5108427063534726150'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/unix-shell-test.html' title='a unix shell test'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-9059610627300671641</id><published>2007-07-03T09:42:00.001-07:00</published><updated>2007-07-03T09:42:26.170-07:00</updated><title type='text'>ITSM/ISM  1.1.1 CTGWE6038E</title><content type='html'>&lt;div&gt; &lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span&gt;When you attempt to create a RFC, you may have the following issue&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span&gt;&lt;span&gt;CTGWE6038E&lt;/span&gt;&lt;br /&gt;The error "com.ibm.tivoli.prism.rm.util.ex.ChangeException" with message "com.ibm.tivoli.prism.rm.util.ex.ChangeException: com.ibm.tivoli.prism.rm.util.ex.RMCMDBEJBException: CTGCM1002E An attempt was made to send a request to the CDB EAR application, but the attempt failed." was received unexpectedly.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span&gt;the root cause is that CCMDB does not have SSL cert info of CMDB, copying the jssecacerts.cert to &lt;ccmdb_home&gt;/cmdb_data/etc, and re-create RFC.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-9059610627300671641?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/9059610627300671641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=9059610627300671641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/9059610627300671641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/9059610627300671641'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/itsmism-111-ctgwe6038e.html' title='ITSM/ISM  1.1.1 CTGWE6038E'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-5709405117680172459</id><published>2007-07-03T09:40:00.000-07:00</published><updated>2007-07-03T09:41:46.891-07:00</updated><title type='text'>XAMPP, easyElcipse, Ruby</title><content type='html'>&lt;div&gt;recently I found the convenience of XAMPP.  especially in linux platform&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;1. un-tar XAMPP tarball in /opt/lampp&lt;/div&gt; &lt;div&gt;2. un-tar esyEclipse 1.2.1.1 for LAMPP&lt;/div&gt; &lt;div&gt;3. install ruby rail on XAMPP by using axlegrease 0.6.2&lt;/div&gt; &lt;div&gt;   after the installation, you should be able to sess &lt;a href="http://hostname/emaildir"&gt;http://hostname/emaildir&lt;/a&gt;  the ruby sample application.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-5709405117680172459?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/5709405117680172459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=5709405117680172459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5709405117680172459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5709405117680172459'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/xampp-easyelcipse-ruby.html' title='XAMPP, easyElcipse, Ruby'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-3316787732180985009</id><published>2007-07-03T09:39:00.000-07:00</published><updated>2007-07-03T09:40:46.782-07:00</updated><title type='text'>Yum Package</title><content type='html'>&lt;div&gt;in order to install YUM&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt; rpm -Uvh yum-2.6.1-1.noarch.rpm python-elementtree-1.2.6-7.el4.rf.i386.rpm python-sqlite-1.0.1-1.2.el4.rf.i386.rpm python-urlgrabber-2.9.7-1.2.el4.rf.noarch.rpm sqlite-2.8.16-1.2.el4.rf.i386.rpm&lt;br /&gt;the &lt;a href="http://www.freevps.com/download/yum/RHEL4/"&gt;http://www.freevps.com/download/yum/RHEL4/&lt;/a&gt; contains the necessary files, however, yum official website and redhat does not have rpms.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-3316787732180985009?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/3316787732180985009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=3316787732180985009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/3316787732180985009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/3316787732180985009'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/yum-package.html' title='Yum Package'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-9208931494435758588</id><published>2007-07-03T09:37:00.002-07:00</published><updated>2007-07-03T09:38:09.912-07:00</updated><title type='text'>PyOpenSSL  installation</title><content type='html'>&lt;div&gt;although PyOpenSSL install file mentioned the windows modules installation, it assumed that Visual Studio 2003 has been installed. in reality, we do not have VS 2003 installed, sometime we also does not Cygwin installed, does it mean that we can not install pyOpenSSL? the answer is obvious No. It will take a while to find out the why, since there is not such answer on the web.&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;first step: get packages  ( my python version is 2.5)&lt;/div&gt; &lt;div&gt;download pyOpenSSL-0.6&lt;/div&gt; &lt;div&gt;install windows OpenSSL, default folder is c:\OpenSSL &lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;second step: build  ( I found the following content is very useful for the issue (&lt;a href="http://webcleaner.sourceforge.net/install.html"&gt;http://webcleaner.sourceforge.net/install.html&lt;/a&gt;)&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;Change to the directory where you installed the Win32OpenSSL software into (for example c:\OpenSSL). Now fix the library names for the mingw compiler: &lt;tt&gt;&lt;span&gt;c:\OpenSSL&gt;&lt;/span&gt; &lt;span&gt;cd&lt;/span&gt; &lt;span&gt;lib\MinGW&lt;/span&gt; &lt;span&gt;&amp;&amp;amp;&lt;/span&gt; &lt;span&gt;move&lt;/span&gt; &lt;span&gt;ssleay32.a&lt;/span&gt; &lt;span&gt;libssleay32.a&lt;/span&gt; &lt;span&gt;&amp;&amp;amp;&lt;/span&gt; &lt;span&gt;move&lt;/span&gt; &lt;span&gt;ssleay32.def&lt;/span&gt; &lt;span&gt;libssleay32.def&lt;/span&gt;&lt;/tt&gt;&lt;/div&gt; &lt;div&gt; &lt;li&gt; &lt;p&gt;Extract pyOpenSSL-0.6.tar.gz and change into the generated directory (for example c:\pyOpenSSL-0.6). Open a text editor for setup.py and replace 'libeay32' with 'eay32'. &lt;/p&gt;&lt;/li&gt;&lt;li&gt; &lt;p&gt;Then run: &lt;tt&gt;&lt;span&gt;c:\pyOpenSSL-0.6&gt;&lt;/span&gt; &lt;span&gt;python&lt;/span&gt; &lt;span&gt;setup.py&lt;/span&gt; &lt;span&gt;build_ext&lt;/span&gt; &lt;span&gt;-c&lt;/span&gt; &lt;span&gt;mingw32&lt;/span&gt; &lt;span&gt;-I&lt;/span&gt; &lt;span&gt;c:\OpenSSL\include&lt;/span&gt; &lt;span&gt;-L&lt;/span&gt; &lt;span&gt;c:\OpenSSL\lib\MinGW&lt;/span&gt; &lt;/tt&gt;&lt;/p&gt;&lt;/li&gt;&lt;/div&gt; &lt;div&gt;   &lt;/div&gt; &lt;div&gt;last step: install ( if you do not skil-build, since -c mingw32 will not pass from install to build, the installation will failure regardless whether build success or not)&lt;/div&gt; &lt;div&gt;C:\projects\Python\pyOpenSSL-0.6\pyOpenSSL-0.6&gt;python setup.py build -c mingw32&lt;br /&gt;running build&lt;br /&gt;running build_py&lt;br /&gt;running build_ext&lt;/div&gt; &lt;div&gt;C:\projects\Python\pyOpenSSL-0.6\pyOpenSSL-0.6&gt;python setup.py install --skip-build&lt;br /&gt;running install&lt;br /&gt;running install_lib&lt;br /&gt;creating c:\python25\Lib\site-packages\OpenSSL&lt;br /&gt;copying build\lib.win32-2.5\OpenSSL\crypto.pyd -&gt; c:\python25\Lib\site-packages\&lt;br /&gt;OpenSSL&lt;br /&gt;copying build\lib.win32-2.5\OpenSSL\rand.pyd -&gt; c:\python25\Lib\site-packages\Op&lt;br /&gt;enSSL&lt;br /&gt;copying build\lib.win32-2.5\OpenSSL\SSL.pyd -&gt; c:\python25\Lib\site-packages\Ope&lt;br /&gt;nSSL&lt;br /&gt;copying build\lib.win32-2.5\OpenSSL\tsafe.py -&gt; c:\python25\Lib\site-packages\Op&lt;br /&gt;enSSL&lt;br /&gt;copying build\lib.win32-2.5\OpenSSL\version.py -&gt; c:\python25\Lib\site-packages\&lt;br /&gt;OpenSSL&lt;br /&gt;copying build\lib.win32-2.5\OpenSSL\__init__.py -&gt; c:\python25\Lib\site-packages&lt;br /&gt;\OpenSSL&lt;br /&gt;byte-compiling c:\python25\Lib\site-packages\OpenSSL\tsafe.py to tsafe.pyc&lt;br /&gt;byte-compiling c:\python25\Lib\site-packages\OpenSSL\version.py to version.pyc&lt;br /&gt;byte-compiling c:\python25\Lib\site-packages\OpenSSL\__init__.py to __init__.pyc&lt;/div&gt; &lt;div&gt;running install_egg_info&lt;br /&gt;Writing c:\python25\Lib\site-packages\pyOpenSSL-0.6-py2.5.egg-info &lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;Type "help", "copyright", "credits" or "license" for more information.&lt;br /&gt;&gt;&gt;&gt; import  OpenSSL&lt;br /&gt;&gt;&gt;&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-9208931494435758588?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/9208931494435758588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=9208931494435758588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/9208931494435758588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/9208931494435758588'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/pyopenssl-installation.html' title='PyOpenSSL  installation'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-2085815337819025330</id><published>2007-07-03T09:37:00.001-07:00</published><updated>2007-07-03T09:37:28.321-07:00</updated><title type='text'>python ValueError: universal newline mode  'U'</title><content type='html'>&lt;div&gt;    print open(featurefile, 'wU').writelines()&lt;br /&gt;ValueError: universal newline mode can only be used with modes starting with 'r'&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;take out U will solve the issue.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-2085815337819025330?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/2085815337819025330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=2085815337819025330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2085815337819025330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/2085815337819025330'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/python-valueerror-universal-newline.html' title='python ValueError: universal newline mode  &apos;U&apos;'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2845945721934227685.post-5925469551913478416</id><published>2007-07-02T23:06:00.000-07:00</published><updated>2007-07-02T23:17:22.972-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python lambda filter reduce'/><title type='text'>python tip</title><content type='html'>Assumed that a sample.txt file contains multiple headline, which are same as the line0. In order to keep line0 as the only head line,  and delete the rest line in the middle of file, we have the following 2 implementation:&lt;br /&gt;&lt;br /&gt;Trivial:&lt;br /&gt;&lt;br /&gt;ls = open("sample.txt").readlines()&lt;br /&gt;k = ls[0]&lt;br /&gt;for l in ls[1:] :&lt;br /&gt; if l.find("File") &lt; 0:&lt;br /&gt;     k += l&lt;br /&gt;then k contains what I want&lt;br /&gt;&lt;br /&gt;Python way :&lt;br /&gt;&lt;br /&gt;from operator import add&lt;br /&gt;filter_line0 = lambda line0, lines:  reduce ( add, filter ( lambda line : line.find(line0) &lt; 0, lines  ))&lt;br /&gt;k = ls[0]+filter_line0(ls[0], ls[1:])&lt;br /&gt;&lt;br /&gt;The trivial way is easy to understand, but hard to reuse.  in order to reuse these code, we have to copy block of code or define these code as a function, However,  the python way express intuitive way as one line function definition, then you can use it anywhere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2845945721934227685-5925469551913478416?l=bugpy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bugpy.blogspot.com/feeds/5925469551913478416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2845945721934227685&amp;postID=5925469551913478416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5925469551913478416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2845945721934227685/posts/default/5925469551913478416'/><link rel='alternate' type='text/html' href='http://bugpy.blogspot.com/2007/07/python-tip.html' title='python tip'/><author><name>Bug</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
