Miles to go …

November 9, 2007

JRuby 1.0.2 released – Improved Windows experience and Rails 1.2.5 support

Filed under: web2.0 — arungupta @ 5:00 am

JRuby 1.0.2 was released last week.

A total of 99 issues were fixed but I’m particularly excited about JRUBY-1347, JRUBY-1350, JRUBY-1401 and JRUBY-1410. These are some issues that I faced (1347 here, 1350 here, 1401 here, 1410 here) on my primary development machine – Windows.

Here is the status report:

  • On Windows only, the latest Rails gem (1.2.5) is now working with stable release of JRuby (1.0.2 as of today).

  • On Windows only, GlassFish v3 gem does not work with JRuby 1.0.2 but works with the JRuby trunk (JRUBY-1549). The gem works correctly on Solaris and Mac.

  • JRuby 1.0.2 bundles will be available on GlassFish Update Center soon.

Now the details.

Here is the command sequence for creating and hosting a trivial Hello World on WEBrick:

  1. Install Rails

    C:\testbed\ruby\jruby-1.0.2>bin\jruby -S gem install rails --include-dependencies --no-ri --no-rdoc
    Bulk updating Gem source index for: http://gems.rubyforge.org
    Successfully installed rails-1.2.5
    Successfully installed activesupport-1.4.4
    Successfully installed activerecord-1.15.5
    Successfully installed actionpack-1.13.5
    Successfully installed actionmailer-1.3.5
    Successfully installed actionwebservice-1.2.5

  2. Create a template application

    C:\workarea\samples\rails>\testbed\ruby\jruby-1.0.2\bin\jruby -S rails hello
     create
    create app/controllers
    create app/helpers
    create app/models
    create app/views/layouts
    create config/environments
    create components
    create db
    create doc
    create lib
    create lib/tasks
    create log
    create public/images
    create public/javascripts
    create public/stylesheets
    create script/performance
    create script/process
    create test/fixtures
    create test/functional
    create test/integration
    create test/mocks/development
    create test/mocks/test
    create test/unit
    create vendor
    create vendor/plugins
    create tmp/sessions
    create tmp/sockets
    create tmp/cache
    create tmp/pids
    create Rakefile
    create README
    create app/controllers/application.rb
    create app/helpers/application_helper.rb
    create test/test_helper.rb
    create config/database.yml
    create config/routes.rb
    create public/.htaccess
    create config/boot.rb
    create config/environment.rb
    create config/environments/production.rb
    create config/environments/development.rb
    create config/environments/test.rb
    create script/about
    create script/breakpointer
    create script/console
    create script/destroy
    create script/generate
    create script/performance/benchmarker
    create script/performance/profiler
    create script/process/reaper
    create script/process/spawner
    create script/process/inspector
    create script/runner
    create script/server
    create script/plugin
    create public/dispatch.rb
    create public/dispatch.cgi
    create public/dispatch.fcgi
    create public/404.html
    create public/500.html
    create public/index.html
    create public/favicon.ico
    create public/robots.txt
    create public/images/rails.png
    create public/javascripts/prototype.js
    create public/javascripts/effects.js
    create public/javascripts/dragdrop.js
    create public/javascripts/controls.js
    create public/javascripts/application.js
    create doc/README_FOR_APP
    create log/server.log
    create log/production.log
    create log/development.log
    create log/test.log

  3. Add a controller

    C:\workarea\samples\rails>cd hello

    C:\workarea\samples\rails\hello>\testbed\ruby\jruby-1.0.2\bin\jruby script\generate controller say hello
    exists app/controllers/
    exists app/helpers/
    create app/views/say
    exists test/functional/
    create app/controllers/say_controller.rb
    create test/functional/say_controller_test.rb
    create app/helpers/say_helper.rb
    create app/views/say/hello.rhtml

  4. Edit Controller

    C:\workarea\samples\rails\hello>vim app\controllers\say_controller.rb

    Add  @hello_string = "Hello from 1.0.2" in hello helper. The updated file looks like:

    class SayController < ApplicationController

      def hello
        @hello_string = "Hello from 1.0.2"
      end
    end

  5. Edit View

    C:\workarea\samples\rails\hello>vim app\views\say\hello.rhtml

    and add <%= @hello_string %> as the last line. The updated file looks like:

    <h1>Say#hello</h1>
    <p>Find me in app/views/say/hello.rhtml</p>
    <%= @hello_string %>

  6. Start WEBrick and view the page http://localhost:3000/say/hello in a browser window:

    C:\workarea\samples\rails\hello>\testbed\ruby\jruby-1.0.2\bin\jruby script\server
    => Booting WEBrick...
    => Rails application started on http://0.0.0.0:3000
    => Ctrl-C to shutdown server; call with --help for options
    [2007-11-07 17:22:01] INFO WEBrick 1.3.1
    [2007-11-07 17:22:01] INFO ruby 1.8.5 (2007-11-01) [java]
    [2007-11-07 17:22:01] INFO WEBrick::HTTPServer#start: pid=11245030 port=3000
    127.0.0.1 - - [07/Nov/2007:17:22:38 PST] "GET /say/hello HTTP/1.1" 200 81
    - -> /say/hello

The GlassFish v3 Gem does not work with JRuby 1.0.2 (JRUBY-1549) on Windows. It works very well on Solaris and Mac. For Windows, you need to use the JRuby trunk (checkout and build):

After you’ve built the JRuby trunk, you can create a similar new application and run it on GlassFish v3 gem as:

  1. Download and Install the gem

    C:\workspaces\jruby-trunk>bin\jruby -S gem install glassfish-gem-10.0-SNAPSHOT.gem
    Successfully installed GlassFish, version 10.0.0

  2. Start GlassFish v3 and view the page http://localhost:8080/hello/say/hello:

    C:\workarea\samples\rails>\workspaces\jruby-trunk\bin\jruby -S glassfish_rails hello
    Nov 8, 2007 2:39:07 PM com.sun.enterprise.v3.services.impl.Grizzly
    Adapter postConstruct
    INFO: Listening on port 8080
    Nov 8, 2007 2:39:08 PM com.sun.enterprise.v3.services.impl.DeploymentService postConstruct
    INFO: Supported containers : php,phobos,jruby,web
    Nov 8, 2007 2:39:08 PM com.sun.grizzly.standalone.StaticResourcesAdapter <init>
    INFO: New Servicing page from: C:\workarea\samples\rails\hello\public
    Nov 8, 2007 2:39:15 PM com.sun.enterprise.v3.server.AppServerStartup run
    INFO: Glassfish v3 started in 7588 ms
    Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
    INFO:

    Processing SayController#hello (for 127.0.0.1 at 2007-11-08 14:39:27) [GET]

    Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
    INFO: Session ID: 46e3279ab4f2d776b4d76010cc7b38af

    Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
    INFO: Parameters: {"action"=>"hello", "controller"=>"say"}

    Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
    INFO: Rendering say/hello

    Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
    INFO: Completed in 0.01100 (90 reqs/sec) | Rendering: 0.00900 (81%) | 200 OK [http://localhost/hello/say/hello]

A comprehensive list of JRuby on GlassFish documentation is available here.

Technorati: jrubyonglassfish jruby glassfish windows rubyonrails v3 gem ruby

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

November 8, 2007

TOTD #16: Optimizing Metro Stubs by locally packaging the WSDL

Filed under: webservices — arungupta @ 11:00 pm

When Metro stubs are used to invoke a Web service endpoint, two invocations are made over the network – one for retrieving the WSDL and the other for sending the request message.

The second invocation is easy to explain because that’s when the actual message is sent to the endpoint.

The first invocation to retrieve the WSDL is necessary because the generated stubs contain only the portable method signatures and annotations. All the binding specific information, such as quality-of-service policy assertions, are retrieved at the runtime. This approach was taken because of two reasons:

  • All the binding information cannot be captured in the generated stubs
  • Quality-of-service may change between the stub generation and actual invocation.

However if the WSDL is not expected to change then you can consider locally packaging the WSDL with the client. In this case the locally packaged WSDL, instead of accessing over the network, is used to retrieve the binding information.

Metro runtime is integrated in GlassFish and can also be installed on Tomcat. Vivek explained the several Tooling options with MetroNetBeans IDE being the most comprehensive.

Several screencasts are available to get you started with Metro.

Please leave suggestions on other TOTD that you’d like to see. A complete archive is available here.

Technorati: webservices metro glassfish netbeans performance totd

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

November 7, 2007

Screencast #Web10: CRUD using jMaki and JPA

Filed under: web2.0 — arungupta @ 11:00 pm
This screencast shows how to create a simple jMaki application, using NetBeans IDE, that performs some of the CRUD operations on a Data Table widget. It uses Java Persistence API (JPA) to connect to the database and the application is deployed on GlassFish. The rest of the CRUD operations can be easily built using the same methodology.

The steps followed in this screencast are also described in detail.

Enjoy it here!

Technorati: screencast jmaki netbeans glassfish jpa database crud

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

November 6, 2007

GlassFish Day Beijing 2007 – By the Community, For the Community

Filed under: webservices — arungupta @ 12:02 am

Nov 3rd was the Community Day events as part of Sun Tech Days, Beijing. GlassFish, Open Solaris and NetBeans Day were conducted as part of the event. This blog provides a report on GlassFish Day.

The GlassFish Day started with approximately 100 people in the room. I personally enjoyed the entire day because I had to give only a 10 minute welcome session and no other talks :) However the emphasis of this particular event was to empower the local community about GlassFish so that they can help us spread the word further. And that was served very well. Most of the speakers were local and thus the title – By the Community, For the Community.

It was very nice to meet Jim Jiang, Ada Li, Wang Yu, Liang Yan (Left to Right in the first picture) and Jason Huang (the second picture) who co-authored the first GlassFish book in Chinese. You can order the book from here.

The audience was very interactive through out all the sessions. Next is a list of the questions asked in each session (along with their answers).

Ada Li presented on GlassFish, Java EE 5 and their Future. The slides are available here and the questions are:

  • Is GlassFish supported on AIX ?

    GlassFish v2 is supported on Solaris Sparc, Solaris x86, Windows, Linux and Mac. The next Update Release (scheduled next year) will be supported on AIX.

  • Is GlassFish v3 modular architecture based on OSGI ?

    Read the relationship between v3 and OSGI here.

  • What is the difference between GlassFish v2 and Application Server 9.1 ?

    The codebase for GlassFish v2 and App Server 9.1 is exactly same. However there are two differences between them:

    • GUI-based installer

    • You can buy support for App Server 9.1

  • How is GlassFish v3 different from v2 ?

    GlassFish v3 is the next version of GlassFish v2. Here are the main differences:

    • Smaller (<100 KB kernel)

    • Faster (starts in < 1 second)

    • Modular (starts up only the required container)

    • Will be Java EE 6 compatible

    • First stable version will be available next year

  • Can a J2EE 1.4 application be deployed on Java EE5 ?

    Yes, a J2EE 1.4 application using only the standard features can be deployed on Java EE 5 compliant App server like GlassFish.

Key-Yoe presented on OpenESB. The slides are available here and the questions are:

  • What are the timelines for next release of the product ?

    It is scheduled mid 2008.

  • Are JBI components supported in Eclipse ?

    JBI components can be supported in Eclipse through extensions or plugins.  Efforts are either in progress and have been demonstrated.  One such effort can be referenced at http://incubator.apache.org/servicemix/extending-eclipse-wtp-to-support-jbi.html

  • What is the difference between JBI, SCA and SDO ?

    SDO (Service Data Object) is included in the SCA (Service Component Architecture) standard.  There are differing views on the differences between JBI and SCA/SDO and listed at: http://www.osoa.org/display/Main/Relationship+of+SCA+and+JBI

  • Can Open ESB be deployed in a container other than GlassFish ?

    Yes.  It is possible to deploy OpenESB on JBoss, but it requires some tweaking.  OpenESB can also be deployed on WebSphere.  Refer to this entry,
    http://blogs.sun.com/annies/entry/openesb_on_websphere.

  • What are the main difference between OpenESB and Service Mix ?

    Service Mix is an open source ESB based on the JBI specification, as well.  So, the JBI concepts in the presentation apply to Service Mix, too. So, the primary difference is implementation and the platform it supports. Service Mix runs on more platforms than OpenESB.  But, Open ESB has more emphasis on tools and has a more comprehensive environment using Netbeans IDE for creating SOA/Composite applications that run in Open ESB environment.

Wang Yu & Jim Jiang presented on the Special Features of GlassFish. The slides are available here and the questions are:

  • What is the mechanism behind Comet ARP ?

    ARP (and Comet) allows for "parking" a request when some conditions are not satisfied, and "continuation" the request processing at the later time. Based on NIO, ARP will keep a HTTP connection open for a long time, but will not hold a thread on the connection, which is more scalable.

  • How Comet can be enabled ?

    By adding <property name="cometSupport" value="true"/> property to HTTP listener.

  • How much is the performance impact because of enabling Comet ?

    There is no performance impact.

  • How
    to build Comet apps ?

    They are very rich API for Comet application. Read more details here, here, ICEfaces supports Grizzly Comet natively, and GWT will soon as well.

Vihang Pathak presented on Open Portal. The slides are available here and the questions are:

  • How to contribute to the community ?

    There are many ways to participate and they are documented at https://portal.dev.java.net/public/GetInvolved.html.

  • What are the next steps for Open Portal ?

    The next release is 7.2 which will happen from the source thats in the open. The roadmap for post-7.2 is in works and will be finalized and communicated shortly.

  • What are the Advantages of Open Portal as compared to BEA’s ?

    Open source is the first and biggest but not the only advantage. Sun’s Portal (which is now open source) has been rated in the magic quadrant for many consecutive years by Gartner. It is enterprise class, true to the definition here, http://wiki.java.net/bin/view/OpenPortal/EnterpriseClassDefinition.

  • Will SSO work between Open Portal and existing applications ?

    Yes, if the existing applications are already using the same SSO solution (Access Manager).

  • What JSRs are supported ?

    JSR 168, JSR 286, JSR 170

Jason Huang presented on Open MQ. The slides are available here and Jason continued the discussion with attendees after the session finished just in time.

Tao Li presented on Metro – The Web services stack in GlassFish. The slides are available here and the questions are:

  • Is there any performance comparison with the current version of Axis2 1.4?

    The current performance benchmarks are with Axis2 1.1.1 and available here. Some more performance improvements have gone in Metro since then but no results are available.

  • How can I manually edit the configuration file to change the enterprise features ?

    The recommended way is to enable/modify any of the enterprise features using NetBeans IDE. Hand editing the configuration file requires to understand the syntax of policy assertions and the inner workings of Metro.

  • How does Metro compare with XFire ?

    A matrix comparing several Web services stacks is available here.

And the complete album from all the community events is available here:

All the presentations are also available here.

The event staff was meticulous and very helpful. They took care of all the details including getting the room ready on time, lining up the attendees and making sure the door is closed at all times. It was a great experience in all.

Next stop @ FOSS.IN.

Technorati: conf suntechday glassfish webservices netbeans opensolaris

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

November 5, 2007

Wangfujing Street – Authentic China in Beijing

Filed under: General — arungupta @ 12:02 am

If you want to see authentic China in Beijing without going to country side or hotungs, Wangfujing Street has it. This street is located at Wangfujing station using Line 1 of Subway.

This street has big name stores (with big bill boards), shopping malls and lots of people. Especially the side streets which sell street food are just amazing. Scorpion and Sea Horse are some of the common dishes but I just could not muster the courage to try them.

The Beijing 2008 Olympics store was crowded and had some nice goodies. No bargaining there though ;)

You can also buy all sort of mementoes like magnet, playing cards, decoration pieces etc from in the side streets. And here you DO need to exercise your bargaining skills.

A complete album is available here:

Technorati: conf traveltips beijing china

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

November 2, 2007

Beijing Silk Market – Shopping & Bargain Paradise

Filed under: General — arungupta @ 10:36 pm

Beijing Silk Market (a.k.a. Xiushui Silk Market) is a multi-floor shopping complex in the Beijing Downtown. It is famous for fake branded goods such as Coach and Prada purse, RayBan glasses, iPod, Silk scarves, Jeans and you name it. It’s also famous for extreme bargaining. And you may be surprised how extreme is extreme by reading the tips below along with a table of comparative prices paid.

It is directly connected from the Yong’anli Subway station on Line of Subway.

Here are the basic shopping tips that I learned by talking to others and practiced during my shopping stint:

  1. Each item has three prices – Printed, American and Chinese. Typically Printed and American price are the same, may be American price slightly lower. The Chinese price is typically 50-70% of the American price. The first quote from the shopkeeper will be based upon your skin color. However the most important rule is to NEVER buy at any of the first quote price. Always quote a price that is 10% of the Chinese price and then haggle your way up. Going up is only an additional buffer and is not a necessary step. In any case, don’t pay more than 15-20% of the Chinese price. You may find it ridiculous but it worked in most of the cases as you can see from the table of comparative prices below.
  2. Some of the commonly used phrases to indicate the stage of bargain are – Joking price (when the shopkeeper find the price is ridiculous), Final price (quoted multiple times from the shopkeeper, sometimes final final price) and Yes or No price (mostly used to quote the final price from the shopkeeper). You can pretty much ignore the first two prices and consider third one slightly seriously (see next point) if you are interested in the item.
  3. Be ready to NOT to buy irrespective of the item and you might end up buying it for a ridiculously low price.
  4. This is an important one. If the price is not meeting your expectation, WALK away from the shop. It may be hard to do it sometimes because you may like the item very much but force yourself out of the shop. There is a high likelihood that you’ll be physically pulled in the shop so don’t feel offended but stick to your price. If need be, pretend walking out of the shop and you’ll see the shopkeeper shouting from the behind with your price. It’s important to confirm and double confirm the price and especially the currency ;-)
  5. The magic word is "moment". If you hear this word from the shopkeeper, which most likely will be the case, that means you are likely in a position to strike a deal at your price.
  6. Some of the shopkeepers get really angry and start throwing items (mostly with clothes) around. Don’t budge, this is just a tactic to show they are upset and instead keep smiling and stick to your price.
  7. Buying more than one item will get you a better price. As the prices are ridiculously cheap, it’s worth buying more than one and gift it back home.
  8. A key rule is to bargain with smile and that will improve your chances of meeting your price :)

Here is a comparative table of quoted and paid prices for some of the items:

Item Quoted Paid
Silk Scarves 650 55
Denim Jacket (heavy embroidery) 1200 180
Kimono 450 40
Denim Jeans (with embroidery) 450 35
Silk Two-piece Dress for Kids 600 50

Happy shopping & bargaining!

Technorati: traveltips shopping silkmarket beijing bargain

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

Sun Tech Days Beijing – Talent Show in Pictures

Filed under: General — arungupta @ 12:30 am
One of the Sun Tech Days event is "Talent Show". It allows the conference attendees to demonstrate their non-technical skills on the stage. It was first introduced 5 years ago and became so popular that it’s now part of the regular agenda. Attendees do all sort of things – typically juggling, dancing, singing, wiggling ears, whistling and I remember the winner at Atlanta Tech Days showed a back flip. And the winner is awarded a Java Jacket.

The show serves two purpose: audience interaction and add levity in a technical conference. As Jonathan Schwartz says – The Age of Participation is Now and this event encourages the community to show their skills to rest of the audience.

The way it works is that 3 volunteers are chosen from the attendees in the room, each volunteer gets to introduce them self and then demonstrate the talent. After all the volunteers have shown then the audience is asked to pick a winner by applause meter. In Beijing, there was an overflow room for the morning session and so there were two sets of volunteers who demonstrated their talent. And of course, we gave out two Java Jackets as well :)

Here is the talent show captured in pictures:

   

The winners this time performed Street Dancing and Kick Boxing. Watch the complete album here:

 

And of course, follow the complete coverage in Sun Tech Days Event blog.

Technorati: conf suntechdays talentshow beijing

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

November 1, 2007

Sun Tech Days Beijing – Day 1 Report

Filed under: webservices — arungupta @ 10:30 pm

1500 developers kick started 10th anniversary Tech Day event at the Beijing International Convention Center earlier today.

Joey Shen, Angela Caicedo, Doris Chen and Chuk Munn Lee demonstrated Swing/Java2D, Sun SPOTs, jMaki and JavaFX demo respectively as part of the demo showcase. All the demos were really good and showcased different technologies from Sun. I personally liked Sun SPOT demo which showcased how Robosapiens can be easily controlled using the JVM. It very well resonated with "Internet of Things" that Lionel Kim (President Greater China and COO APAC Sun Microsystems) mentioned in his keynote earlier in the morning.

According to Lionel, there are three factors driving global innovation:

  • Web.next – The key point here is that currently the major producer/consumer of content on the Internet are people. But very soon it’ll be an Internet of things where different "things" are interacting on the Web fueled by all the innovations happening in Web.next.
  • Age of the startups – Facebook valued at $ 15 billion has already changed the current landscape and similar companies are going to drive the needs for next generation.
  • Rise of communities – Time magazine awarded YOU (community) as Person of The Year award for 2006. And that indeed is the most important factor in driving innovation.

Carla provided a great coverage of Jim Hughes keynote (during which I was busy with local translators for my upcoming session :) This is the 10th anniversary year of Tech Days and we celebrated by cutting a birthday cake. There is lot of backstage work (audio, video, rehearsal, logistics and all sort of things) that often goes unnoticed and some of the photographs below highlight that work.

Right after the keynote, I gave a talk on "Java EE5, GlassFish and Their Future" and the slides are available here. It was great talking about GlassFish to a 560 capacity room full of audience. Leon showed a demo of localized version of GlassFish and how it can be configured in a clustered environment.

Jim Jiang offered to give away 10 copies of his recently published book on GlassFish. You can order it online here. Jim Jiang and Wang Yu are the primary authors with content contributed from Jason Huang, Ada Li, Liang Ye and Evrin Yan. It was great meeting most of these individuals face-to-face. If you missed being one of the lucky winners of the book, then attend GlassFish Day on Saturday, Nov 3 and there will be many more copies distributed.

I also attended Chuk’s talk on Metro and REST. He really presented the concept very well and it was fun seeing somebody else present Metro :)

I spent rest of the day talking to people on the GlassFish booth. Once again, Jim Jiang helped me connect with the local audience. I’ll prepare a summary of the  questions and then provide answers to them in a subsequent blog. In the meanwhile, here are some links for you to get started:

The evening ended with Yanjing Beer and Beijing Duck dinner. And as always, enjoy the pictures from through out the day:

 

Follow the complete coverage in Sun Tech Days Event blog.

Technorati: conf suntechdays metro webservices jmaki web2.0 glassfish netbeans beijing

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

Travel Tips to Beijing

Filed under: General — arungupta @ 12:49 am

I arrived in Beijing for Sun Tech Days earlier this week. Here are some travel tips:

  1. The Beijing city has Tina’anmen Square and Forbidden City at it’s center. Rest of the city is structured in multiple ring roads around the center. Each tourist place can be located as between X and Y ring road easily.
  2. If you are a Wells Fargo banker, take the Access Code from Customer Service before boarding the flight. This code allows you to talk to a Wells Fargo banker in USA from anywhere in China. There are separate codes for North and South China. Dial the access code, get the operator, mention the 800-869-TO-WELLS and voila you are connected to the network.
  3. Nichole & Renita were gracious to let me share the ride from airport to the hotel so I missed that part of the experience. But it’s recommended to walk out of the airport and get a Taxi from the Taxi Stand instead of getting lost in rooks within the airport. It’s also recommended to have your hotel name written in Mandarin because the Taxi Drivers may not be able to read/speak English. Once you checked into the hotel you can use your hotel key to show the address (which has the address written in Chinese) to move around the city.
  4. Took a guided tour from the hotel to Forbidden City and Great Wall of China. It covered Transportation, Lunch, Parking tickets and Tolls and an English-speaking guide. You can do the same using a private taxi but it may turn out to be slightly costly and most likely you will not get an Mandarin-speaking driver and therefore no guide :) As part of the standard tour, they may take you to a Silk Emporium and Jade Factory, they are fun places just to learn how they are all manufactured.
  5. Shopping is a LOT of fun in Beijing. There is a great variety of clothes, toys, gadgets, etc. at local shops. And no shopping is complete without bargaining and that too HARD bargaining. For example when shopping at touristy places, such as street-side shops near Great Wall, bargain HARD. The rule that I followed was to quote the price to 10% of the original. Here are some examples:
     
    Item Quoted Paid
    Tee-shirts 1 for 130 RMB 3 for 50 RMB
    Cashmere Scarf (can’t be original ;) 1 for 160 RMB 5 for 80 RMB
    Great Wall Memento 350 RMB 20 RMB
    Refrigerator Magnet 20 RMB 5 RMB

    Generally the shopkeepers will give a counter offer but be straight-faced and maintain your price. To keep it easy, just stick to your price and pretend walk away. In all the cases, I was approached with my quoted price :)

  6. If you plan to visit Great Wall during November, make sure to carry good warm clothing including gloves and an ear-long cap and a good hiking/walking shoe. It is extremely windy and certain portions of the Wall are really steep.

  7. There is no tipping in restaurants and taxi. Don’t be surprised if you see a confused look on the person serving if you leave the tip.

And here are the pictures so far:

Sun Tech Days Beijing kick started this morning and a subsequent entry will talk about that.

Technorati: conf traveltips beijing suntechdays

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot
« Newer Posts

The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
Powered by WordPress